大家好,又见面了,我是你们的朋友全栈君
之前介绍了 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>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/193458.html原文链接:https://javaforall.cn