1.情景展示
在实际开发过程中,根据数据库的表生成对应的增删改查代码,最为常见。
除了使用公司封装的代码自动生成外,有没有通用的呢?
2.具体分析
在idea当中,我们可以使用MybatisX插件生成:
表对应的实体类、dao层所使用的的mapper.java文件、mybatis对应的xml文件、service层所需的接口和实现类。
3.解决方案
安装MybatisX
在idea当中找到plugins选项。
切换到Marketplace,搜索:mybatis
找到MybatisX插件,点击“Install”进行安装。
连接数据库
既然是在idea当中根据表生成代码,自然需要在idea中连接数据库。
具体操作步骤,见文末推荐。
生成代码
打开database窗口,找到要生成代码的表。
我们可以在此窗口按键输入,将自动进行表名检索。
通过点击选中要生成的表名,右键。
你将发现菜单栏多了一个:MybatisX-Generator。
说明:如果没有这个选项的话,你需要重启idea,令刚才安装的MybatisX插件生效。
说明:
base package:可以为空
base path:要生成的文件所在目录,从src开始。
一次生成,只能选中一张表,不能选中多张的。
选择有生成文件所在的包名,右键,copy path。
选择从src开始的路径选项。
下一步。
custom-model-swagger:生成实体文件,并且在属性上会自动增加swagger的相关注解
default-all和default-empty:生成实体文件、mapper.java和mapper.xml。
mybatis-plus2和mybatis-plus3:生成实体文件、mapper.java、mapper.xml、serviceInterface.java和serviceImpl.java。
只生成实体类
选择:custom-model-swagger
选中项目,右键刷新。
如果还是找不到的话,就点击项目提交按钮,倒着找。
生成的java实体类如下:
我们可以看到:
生成了注释、knife4j注解和数据格式校验注解。
但是,没有生成lombok注解。
而是生成了对应的get、set方法。
我们可以把这些方法删掉,然后用@Getter和@Setter来代替。
另外
关于字段串长度的校验,插件为我们生成了两个注解,我们可以把@Size删掉。
这个本来是要生成@TableField的(表的字段名称),但是没有生成,看看你那里是否能够生成成功。
即使在annotation选中:mybatis plus 3也无法生成@TableField注解。
生成mapper和业务类
生成如下文件
实体类示例
通过mybatis plus模板,可以生成对应的注解,但是就无法生成swagger和数据格式校验的注解。
我们可以将两者结合使用。
Mapper.java示例
Mapper.xml示例
service.java示例
serviceImpl.java示例
写在最后
哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!