POM 编写完相关代码后,我们可以使用单元测试查看 MyBatis 的执行效果,需要增加单元测试相关依赖,配置如下:
1 2 3 4 5 6 7 8 9 10 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.3.17.RELEASE</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency>
定义实体类 以 tb_user
表为例,实体类代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 public class TbUser implements Serializable { private Long id; private String username; private String password; private String phone; private String email; private Date created; private Date update; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Date getCreated() { return created; } public void setCreated(Date created) { this.created = created; } public Date getUpdate() { return update; } public void setUpdate(Date update) { this.update = update; } }
定义数据访问接口 注意 :Spring 集成 MyBatis 后,不需要手动实现 DAO 层的接口,所有的 SQL 执行语句都写在对应的关系映射配置文件中。
1 2 3 4 5 6 7 8 9 @Repository public interface TbUserDao { /** * 查询全部用户信息 * @return */ public List<TbUser> selectAll(); }
定义业务逻辑接口 1 2 3 4 5 6 7 8 public interface TbUserService { /** * 查询全部用户信息 * @return */ public List<TbUser> selectAll(); }
实现业务逻辑接口 1 2 3 4 5 6 7 8 9 10 11 @Service public class TbUserServiceImpl implements TbUserService { @Autowired private TbUserDao tbUserDao; @Override public List<TbUser> selectAll() { return tbUserDao.selectAll(); } }
定义映射文件 映射文件,简称为Mapper
,主要完成 DAO 层中 SQL 语句的映射。映射文件名随意,一般放在src/resources/mapper
文件夹中。这里映射文件名称定为 TbUserMapper.xml
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.funtl.my.shop.web.admin.dao.TbUserDao"> <select id="selectAll" resultType="TbUser"> SELECT a.id, a.username, a.password, a.phone, a.email, a.created, a.updated FROM tb_user AS a </select> </mapper>
创建单元测试 所有工作准备就绪,我们就可以测试 MyBatis
是否能够正常执行了。创建一个单元测试类,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration({"classpath:spring-context.xml", "classpath:spring-context-druid.xml", "classpath:spring-context-mybatis.xml"}) public class TbUserServiceTest { @Autowired private TbUserDao tbUserDao; @Test public void testSelectAll() { List<TbUser> tbUsers = tbUserDao.selectAll(); for (TbUser tbUser : tbUsers) { System.out.println(tbUser.getUsername()); } } }