MyBatis最牛逼的IDEA插件,功能强大,帮你节省95%代码量
参考博客:EasyCode
下载安装
下载
MyBatisCodeHelperPro插件下载地址:MyBatisCodeHelperPro
安装
Intellij最新插件MybatisCodeHelper-2.8.1-191-201,使用方法IDEA顶部菜单:Tools -> MybatisCodeHelper -> Activation -> OfflineActivation,在offline key框输入任意字符串
配置
数据库用的tinyInt 或者 smallInt生成java类型是 byte 和 short 两种类型。在java代码里面操作 byte 和 short 类型比较麻烦,经常需要强制转换,下面是设置使用Integer 来替代byte和short还有使用Java8的日期时间类型
使用
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
生成的SQL语句:
生成好了建表语句后,到数据库中执行, 然后从数据库来生成crud代码
根据表生成Bean、Dao+mapper和Service
第一步:在Intellij中连接上MySQL数据库,在指定的表上右键
第二步:配置生成信息
说明:
- exampleQuery:会生成一大堆的example文件,xml中的example代码看起来也很乱、建议使用方法名生成sql来替代。
- 不推荐mapper接口做继承,所以baseClass选项也不要选。现在代码都是自动生成的,mapper做继承仅能减少一些代码量,效率提升不明显。搞了继承后,看mapper接口对应的xml也变得比较麻烦,哪些方法要放到继承里面也比较难定义,有可能某些接口继承的方法根本用不到。 建议是每个接口只生成自己需要的xml方法。
-generatedComments选项建议选中,不然会出现如下所示的提示
第三步:查看各个生成的目录
根据接口中的方法名生成对应的mapper
- 只需要一个方法名,不需要参数和返回值,输入方法名后,按alt+enter–Generate mybatis sql 就可以生成了
- 方法名生成sql时支持if test
一键添加@param注解
按alt+enter
结果:
生成mapper映射文件中resultMap未使用的字段
光标放到resultmap标签type属性值上 -> alt + enter -> generate unUsed properties
结果:
根据mapper接口生成mapper映射文件
创建一个接口 -> 光标放到接口名上 -> alt + enter -> generate mybatis mapper for current class -> 选择mapper映射文件位置
生成find方法
根据方法名 直接生成sql代码 方法名有自动提示 单表操作的代码只有写个方法名就好了
find方法
生成update方法
生成delete方法
生成count方法
生成测试用例
生成分页查询 (依赖于 pageHelper)
在DeptServiceImpl类中就可以查看到刚才生成的带有分页功能的代码。
从表数据导出java insert语句
可用于快速构造测试数据
Dao中方法名的规则
find方法
可以使用 select query get 替代find开头,支持orderBy,distinct, findFirst
update方法
可以使用modify替代update开头
delete方法
可以使用remove替代delete开头
count方法
支持distinct
生成不基于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键,单击字段,会自动跳转表表的字段中,方便查看各字段的含义:
根据实体类生成sql文件
创建一个实体类,在实体类上右键-generate
选择generte mybatis files
其中:
- unique:唯一索引,不可重复;
- index:普通索引,可重复;
有了表之后就可以创建mapper、mapper.xml、service、serviceImpl了