若依自动生成代码功能改造,适配mybatis-plus -- activiti工作流养成计划(三)

目标:自动生成代码功能改造,适配mybatis-plus

        若依框架的一个很好用的功能就是代码生成。

        在上一步时已经将mybatis升级为了mybatis-plus,接触过的朋友都知道,以后的编码量会少很多。但是现有的代码生成功能还是按照mybatis的代码模板生成的,我们后续编写代码要使用mybatis-plus时需要将mapper、service做一点小改动,虽然不难,但是心里实在不爽,所以还是动手改造一下。

        梳理一下改造思路:

        1、现有的数据库的表是sys、gen、qrtz做前缀的,后面再新增表必须避开这两个前缀。在自动生成功能的代码中就可以根据表的前缀去选择不同的代码模板了,这样做的目的是为了避开若依框架已有的表的功能,后边新增的表使用mybatis-plus代码模板,框架自带的表还是使用mybatis代码模板,虽然自带的表再次使用代码生成的可能性不大了,但是区分开的设计还是更合理一些。

        2、若依的代码自动生成功能比较全,支持单表、父子表、树状表。本次改造先只适配单表的代码自动生成,其余的其实用的也不是很频繁,用到了完全可以生成单表的代码后用cv大法现搬代码,也很快。

        3、以后新增的表必须包含create_by、create_time、update_by、update_time、remark这5个公有字段。

        4、需要改动的模板是controller.java、serviceImpl.java、service.java、mapper.java、mapper.xml、domain.java,html的模板一点不用改。

        5、经分析,只保留现模板中的查询列表的方法,因为其改造的性价比较小(意思就是改起来挺麻烦的哈哈)。模板部分具体改造方案如下。

                controller.java:只保留查询列表、导出两个api,其余方法改成调用mybatis-plus内置api的写法,这样后边mapper、service中的很多方法就可以直接删掉了,能大大简化模板代码量;

                mapper.xml:只保留查询列表一个sql,其余部分删除,因为mybatis-plus提供了内置的api;

                mapper.java:只保留查询列表一个接口,其余部分删除,因为mybatis-plus提供了内置的api;

                service.java:只保留查询列表一个接口,其余部分删除,因为mybatis-plus提供了内置的api;

                serviceImpl.java:只保留查询列表一个实现,其余部分删除,因为mybatis-plus提供了内置的api;

                这样mapper中就只剩一个查询列表方法了,正好可以给mybatis-plus不能满足的复杂查询需要自己写sql的场景打个样。

改造过程细节不详述了,这部分代码放到了码云https://gitee.com/study_badcat/ry_mp_activiti,v1.2分支

你可能感兴趣的:(若依自动生成代码功能改造,适配mybatis-plus -- activiti工作流养成计划(三))