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());
}
}
}