点击关注公众号,实用技术文章及时了解
下载安装
地址:
https://github.com/gejun123456/MyBatisCodeHelper-Pro
安装
Intellij最新插件MybatisCodeHelper-2.8.1-191-201
,使用方法IDEA顶部菜单:Tools -> MybatisCodeHelper -> Activation -> OfflineActivation
,在offline key
框输入任意字符串
![294a60868d43566b4aef3f2b11407868.png](https://i-blog.csdnimg.cn/blog_migrate/b537fada1a33fe5de39c7e07693ea426.png)
配置
数据库用的tinyInt 或者 smallInt生成java类型是 byte 和 short 两种类型。在java代码里面操作 byte 和 short 类型比较麻烦,经常需要强制转换,下面是设置使用Integer 来替代byte和short还有使用Java8的日期时间类型
![064884ad812c7a7cb7b1235b0342323f.png](https://i-blog.csdnimg.cn/blog_migrate/12fee2022214b59c04d13301fc9ec764.png)
使用
Maven依赖
创建Maven项目,为保证生成的代码不出错误提示,导入依赖:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.4</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.11</version>
</dependency>
<!-- 保证生成的Service层的注解不错 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.1.RELEASE</version>
</dependency>
根据实体类生成建表sql
按alt+insert
![05b1b54681e32b493b6b14ce80157630.png](https://i-blog.csdnimg.cn/blog_migrate/1870237beb779ca1aa597d246983703d.png)
生成的SQL语句:
生成好了建表语句后,到数据库中执行, 然后从数据库来生成crud代码
根据表生成Bean、Dao+mapper和Service
第一步:在Intellij中连接上MySQL数据库,在指定的表上右键
第二步:配置生成信息
说明:
exampleQuery:会生成一大堆的example文件,xml中的example代码看起来也很乱、建议使用方法名生成sql来替代。
不推荐mapper接口做继承,所以baseClass选项也不要选。现在代码都是自动生成的,mapper做继承仅能减少一些代码量,效率提升不明显。搞了继承后,看mapper接口对应的xml也变得比较麻烦,哪些方法要放到继承里面也比较难定义,有可能某些接口继承的方法根本用不到。建议是每个接口只生成自己需要的xml方法。
-generatedComments
选项建议选中,不然会出现如下所示的提示
第三步:查看各个生成的目录
![767b1dd7cecf309260b43b751a188ffa.png](https://i-blog.csdnimg.cn/blog_migrate/bcffd59d591f42f6f99b727f70440ffe.png)
根据接口中的方法名生成对应的mapper
只需要一个方法名,不需要参数和返回值,输入方法名后,按alt+enter–Generate mybatis sql
就可以生成了。扩展:最全的java面试题库
方法名生成sql时支持if test
一键添加@param注解
按alt+enter
结果:
![cf4da24bcd22ee5caa06a75ae93a07ab.png](https://i-blog.csdnimg.cn/blog_migrate/4c58206c340575a2ab66c08130ab8ada.png)
生成mapper映射文件中resultMap未使用的字段
光标放到resultmap标签type属性值上 -> alt + enter -> generate unUsed properties
结果:
![eb22d6127c95ebfa7456e3cec66c187c.png](https://i-blog.csdnimg.cn/blog_migrate/e8640d58beb34b753395c8508a939da7.png)
根据mapper接口生成mapper映射文件
创建一个接口 -> 光标放到接口名上 -> alt + enter -> generate mybatis mapper for current class
-> 选择mapper映射文件位置
![ddf82bd032822b8a8de54af3ff259099.png](https://i-blog.csdnimg.cn/blog_migrate/1dd77236a2d376f94352fbbb534d847d.png)
生成find方法
根据方法名 直接生成sql代码 方法名有自动提示 单表操作的代码只有写个方法名就好了
find方法
![de82472a8aa008007398cfed1733226f.gif](https://i-blog.csdnimg.cn/blog_migrate/9dede5fc9b721d6b41472a1e121401c4.gif)
生成update方法
![1bf3e5b507e097aa0e832d1fe8c3413d.gif](https://i-blog.csdnimg.cn/blog_migrate/1f2626d199a70d61801efa180f6550a7.gif)
生成delete方法
![b18ee41b8dcf7574c3196354e52cb785.gif](https://i-blog.csdnimg.cn/blog_migrate/69c06944b137519cc38e3cee5a735e0c.gif)
生成count方法
![595e67e57060045a9cb5139bf2e85313.gif](https://i-blog.csdnimg.cn/blog_migrate/79f6cd7ba1f69c1d2e684790996b50ad.gif)
生成测试用例
![f68c48aaa58581f336dc4728c291d92f.png](https://i-blog.csdnimg.cn/blog_migrate/b583ab35ce1a5084d20c99c7cafde8bf.png)
生成分页查询 (依赖于 pageHelper)
![c323bd3d680a764ab131da39d2de0374.png](https://i-blog.csdnimg.cn/blog_migrate/b8cf82753e4b4afc0bcfa9bdb9849c92.png)
在
DeptServiceImpl
类中就可以查看到刚才生成的带有分页功能的代码。扩展:最全的java面试题库
从表数据导出java insert语句
可用于快速构造测试数据
Dao中方法名的规则
find方法
可以使用 select query get
替代find开头,支持orderBy,distinct, findFirst
![27fd4df926a4eeff386ee0deb073c715.png](https://i-blog.csdnimg.cn/blog_migrate/4a847bc144aeede5b7796c3cf4411232.png)
update方法
可以使用modify替代update开头
![22ebf089133f9139ddd526ba8ccf35f0.png](https://i-blog.csdnimg.cn/blog_migrate/45531080db75ba0501f1ce1d34f63a90.png)
delete方法
可以使用remove替代delete开头
![8773ed95ac4a50f9c8d2666ba529c4b6.png](https://i-blog.csdnimg.cn/blog_migrate/3b3a1917fc4a925e5f5089d8a72d588a.png)
count方法
支持distinct
![04cb9e0982006ab0529860d160b4a102.png](https://i-blog.csdnimg.cn/blog_migrate/af354bd592ea551f57dffdc0369ed819.png)
生成不基于Spring的单元测试
光标定位在Mapper中待生成测试方法的方法声明上按快捷键alt+enter
最终生成的测试代码:
public class DaShangMapperTest {
private static DaShangMapper mapper;
@BeforeEach
public static void setUpMybatisDatabase() {
SqlSessionFactory builder = new SqlSessionFactoryBuilder().build(DaShangMapperTest.class.getClassLoader().getResourceAsStream("mybatisTestConfiguration/DaShangMapperTestConfiguration.xml"));
//you can use builder.openSession(false) to not commit to database
mapper = builder.getConfiguration().getMapper(DaShangMapper.class, builder.openSession(true));
}
@Test
public void testInsertDaShang() throws FileNotFoundException {
mapper.insertDaShang();
}
}
使用小技巧
查看字段
在mapper.xml文件的字段中按着ctrl键,单击字段,会自动跳转表表的字段中,方便查看各字段的含义:
![862835eab120abeccb0dd8a4a958eeb0.gif](https://i-blog.csdnimg.cn/blog_migrate/ff0a9e878340716a867b7a43b6436e12.gif)
根据实体类生成sql文件
创建一个实体类,在实体类上右键-generate
选择
generte mybatis files
![c586d4b06d77442c5d9fd16f95ed17e3.png](https://i-blog.csdnimg.cn/blog_migrate/b9a88639aaf5995e825ce3d67e7bed8b.png)
其中:
unique:唯一索引,不可重复;
index:普通索引,可重复;
有了表之后就可以创建mapper、mapper.xml、service、serviceImpl了
来源:hcshow.blog.csdn.net/article/details/105511508
热门内容:
最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。
获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。
明天见(。・ω・。)