【前言】 最近在研究mybatis逆向工程的一些东西;通过研究Mybatis+通用mapper、逆向工程生成mybatis、Hibernate+mybatis;最终综合这些优点实现了一个我们自己的逆向工程;
【一些对比】 一、《智能一代云平台(二十九):通用mapper的改造》为大家分享了对通用mapper的一些研究;说一下自己在研究过程中对他们的有缺点的总结:
1、Mybatis+通用mapper:
(1)优点:处理单表简单,简化mapper,可以应对实体变化;
(2)缺点:以后不可控,遇到问题后解决问题的成本比较大,需要进行改造(比如其delete为真删除,我们需要保留数据做假删除);
2、Hibernate+Mybatis:
(1)优点:继承,实体变化不大,注解时间等通用字段;
(2)缺点:引入Hibernate学习成本增高,需要解决集群情况下d缓存;
3、我们的方案:
(1)优点:结构清晰,完全可控;
(2)缺点:需要一定的开发工作量;
二、我们的方案实现步骤:
A.利用生成工具进行生成
1、基于一套自动生成工具,自动生成工具地址:https://gitee.com/likun5/lk-generator/ 下载源码后可以用exe4j工具将源码编译成windows可运行程序(下文以test.exe为例);
2、运行test.exe后,此时会发现C盘多了个.LKGenerator文件夹(见下图),此文件夹便为该生成软件的工作空间;
(1)软件主界面
文章图片
(2)工作空间
文章图片
3、将模板文件(templates-var)拷贝到.LKGenerator文件夹中,拷贝完后的效果图:
文章图片
4、进行数据库连接配置:
(1)配置
【●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis】
文章图片
(2)配置数据库连接
文章图片
5、选取需要逆向生成的数据库表
(1)选取表
文章图片
(2)选取表(注: 按住Ctrl可选多张表)
文章图片
6、生成元数据代码(注:此时生成的元数据代码是以下的生成代码的基础,故每次需要重新生成时必须先清空元数据代码目录):
文章图片
生成示意图:
文章图片
7、元数据生成代码的相关配置
文章图片
文章图片
8、元数据生成代码,真正生成自己需要的代码(注:a.执行该步骤前请确保执行了步骤6---生成元数据代码b.若需重新生成需先 清空目标代码目录【点清空目标代码目录按钮即可】)
文章图片
生成成功示意图:
文章图片
B.将生成的代码拷贝到项目中
1、打开目标代码目录:
(1)点击打开目标代码目录
文章图片
(2)生成代码所在目录
文章图片
2、拷贝三次:
(1)将api生成代码进行相关拷贝,见下图:
文章图片
(2)将service生成代码进行相关拷贝,如下图:
文章图片
(3)将web生成代码进行相关拷贝,如下图:
文章图片
3、此时再次在idea中查看发现在步骤一中的相应代码已经都存在(比如下图以api在idea中展示效果为例),至此完成逆向工程完成
文章图片
A.修改相应的ID进行测试
1、在此以Building为例,从数据库中表中找一个ID---2rQw2VtJLiGWekevpyVbEY
2、将ID填写到生成的jsp中
文章图片
3、启动项目进行测试,先启动Service,然后启动Web
(1)访问web后加表名/index
文章图片
(2)点击查找测试,查看web的控制台
文章图片
【总结】 1、权衡利弊,看得失;
2、善于发现,多去总结;
3、实践是检验真理的唯一标准,多动手。
推荐阅读
- 数据结构和算法|LeetCode 的正确使用方式
- #|7.分布式事务管理
- #|算法设计与分析(Java实现)——贪心算法(集合覆盖案例)
- #|算法设计与分析(Java实现)—— 动态规划 (0-1 背包问题)
- #|阿尔法点亮LED灯(一)汇编语言
- #|Multimedia
- #|ARM裸机开发(汇编LED灯实验(I.MX6UL芯片))
- 基础课|使用深度优先搜索(DFS)、广度优先搜索(BFS)、A* 搜索算法求解 (n^2 -1) 数码难题,耗时与内存占用(时空复杂度)对比(附((n^2 - 1) 数码问题控
- #|学习笔记 | Ch05 Pandas数据清洗 —— 缺失值、重复值、异常值
- win10|搏一搏 单车变摩托,是时候捣鼓一下家中的小米电视机啦。