●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis


【前言】 最近在研究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)软件主界面
●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis
文章图片

(2)工作空间
●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis
文章图片

3、将模板文件(templates-var)拷贝到.LKGenerator文件夹中,拷贝完后的效果图:
●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis
文章图片
4、进行数据库连接配置:
(1)配置
【●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis】●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis
文章图片

(2)配置数据库连接
●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis
文章图片

5、选取需要逆向生成的数据库表
(1)选取表
●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis
文章图片

(2)选取表(注: 按住Ctrl可选多张表)
●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis
文章图片

6、生成元数据代码(注:此时生成的元数据代码是以下的生成代码的基础,故每次需要重新生成时必须先清空元数据代码目录):
●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis
文章图片

生成示意图:
●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis
文章图片

7、元数据生成代码的相关配置
●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis
文章图片

●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis
文章图片

8、元数据生成代码,真正生成自己需要的代码(注:a.执行该步骤前请确保执行了步骤6---生成元数据代码b.若需重新生成需先 清空目标代码目录【点清空目标代码目录按钮即可】)
●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis
文章图片

生成成功示意图:
●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis
文章图片

B.将生成的代码拷贝到项目中
1、打开目标代码目录:
(1)点击打开目标代码目录
●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis
文章图片

(2)生成代码所在目录
●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis
文章图片

2、拷贝三次:
(1)将api生成代码进行相关拷贝,见下图:
●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis
文章图片

(2)将service生成代码进行相关拷贝,如下图:
●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis
文章图片

(3)将web生成代码进行相关拷贝,如下图:
●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis
文章图片

3、此时再次在idea中查看发现在步骤一中的相应代码已经都存在(比如下图以api在idea中展示效果为例),至此完成逆向工程完成
●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis
文章图片


A.修改相应的ID进行测试
1、在此以Building为例,从数据库中表中找一个ID---2rQw2VtJLiGWekevpyVbEY
2、将ID填写到生成的jsp中
●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis
文章图片

3、启动项目进行测试,先启动Service,然后启动Web
(1)访问web后加表名/index
●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis
文章图片

(2)点击查找测试,查看web的控制台
●【项目实战】|智能一代云平台(三十):逆向工程生成mybatis
文章图片

【总结】 1、权衡利弊,看得失;
2、善于发现,多去总结;
3、实践是检验真理的唯一标准,多动手。

    推荐阅读