MyBatisCodeHelperPro 插件
之前介绍了 MyBatis 的逆向工程生成实体类、自定义接口以及 Mapper.xml 的操作过程,很显然这样的配置工作非常繁琐且复杂,本文在介绍 MyBatis 动态 SQL 之前,先分享一款实用的 MyBatis Generator 插件(MyBatisCodeHelperPro),使用这个插件可以简化开发过程,提高开发者的编码效率。
第一步:File → Settings → Plugins → Install plugin from disk… (提前将MyBatisCodeHelperPro压缩文件下载到本地磁盘)
第二步:重启 IDEA 完成插件的激活操作(Tools → MyBatisCodeHelper →Activation)
第三步:在激活面板中选择【OfflineActivation】,offline key中输入任意的字符串,然后点击【Activate】完成激活操作。
第四步:使用 IDEA 内置的可视化工具连接数据库,并右键表名,选择【Mybatis generator】
第五步:在操作面板中配置实体类、mapper 接口和 mapper.xml 的文件路径,并注意要修改【xml resources folder】的resources 修改成 java 文件
至此就完成了从 MyBatisCodeHelperPro 插件安装到使用的整个流程,项目生成的目录结构如下:
而且该插件生成的代码非常简洁明了,易于阅读和修改。
下面继续介绍如何使用该插件对生成的方法进行单元测试:
1、对 UserMapper 接口中的每个方法进行逐一测试时,点击【Alt+Enter】选择 Generate mybatis testcase
(说明:以后需要对哪个方法进行测试,就可以对该接口使用快捷键生成测试方法)
2、初始化测试环境,配置数据库连接单元测试的环境
3、添加单元测试的依赖包
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
4、插件可以自动生成 UserMapperTest 测试类
package com.trainingl.mapper;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.FileNotFoundException;
public class UserMapperTest {
private static UserMapper mapper;
@org.junit.BeforeClass
public static void setUpMybatisDatabase() {
SqlSessionFactory builder = new SqlSessionFactoryBuilder().build(UserMapperTest.class.getClassLoader().getResourceAsStream("mybatisTestConfiguration/UserMapperTestConfiguration.xml"));
//you can use builder.openSession(false) to not commit to database
mapper = builder.getConfiguration().getMapper(UserMapper.class, builder.openSession(true));
}
@org.junit.Test
public void testSelectByPrimaryKey() throws FileNotFoundException {
User user = mapper.selectByPrimaryKey(1);
System.out.println(user);
}
}
控制台的打印结果如下:
需要注意的是,如果要添加打印 SQL 的配置,则需要在 test/resources/MyBatisTestConfiguration/~.xml
中配置如下信息。而不是在 config.xml 中配置,因为此时的环境是测试环境。
<settings>
<!-- 打印SQL -->
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>