# 进入开发
# Step.1
开发过程中,在
Service
中注入QmData
。
@Service
public class UserServiceImpl implements UserService {
@Resource
private QmData qmData;
}
1
2
3
4
5
6
2
3
4
5
6
# Step.2
# 使用通用方法
调用
QmData
中提供的通用方法
@Override
public List<User> getList(User user) {
return qmData.autoSelectList(user, User.class);
}
1
2
3
4
2
3
4
# 使用基础方法
# 【1】创建对应业务的Mapper文件
请根据
yml
全局配置文件中的mybatis
配置项mapper-locations
的扫描路径存放Mapper
文件。mapper-locations: - 'classpath*:**/*Mapper.xml' # 该行配置请勿修改
1
2如需特殊配置,该行配置请勿修改。请自行增加一条扫描路径。
<?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">
<!-- namespace是自定义的,但请规范它,规范在帮助文档中有所提及 -->
<mapper namespace="UserManager-UserServiceImpl-0-Mapper">
<select id="getUser" resultType="hashmap">
select * from `qm_user`
</select>
</mapper>
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
这里说明namespace的约定规范
Mybatis
自动扫描Mapper
后,将该Mapper
注册到Spring
中。如果名字不进行规范,会有一些预料不到的错误发生,
spring
内管理的bean
相互冲突是我们不想看到的。如果不按照格式,则直接抛出异常。
namespace="调用模块-调用类名-编号-Mapper" //大驼峰 + 规范化
1
# 【2】Service调用QmData基础方法
@Service
public class UserServiceImpl implements UserService {
@Resource
QmData qmData;
private static final String NAMESCAPSE = "Info-UserServiceImpl-0-Mapper";
@Override
public List<User> getList(String userName) {
return qmData.selectList(NAMESCAPSE + "getUser", userName);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# Step.3
实体类中使用框架提供的注解
@QmTable
、@QmId
,这些注解类似于JPA
注解的使用
@QmTable(name="qm_user")
public class User {
@QmId
private Integer id;
private String userName;
private String password;
private Integer roleId;
public Integer getId() {
return id;
}
public void setId(Integer 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 Integer getRoleId() {
return roleId;
}
public void setRoleId(Integer roleId) {
this.roleId = roleId;
}
@Override
public String toString() {
return "User [id=" + id + ", userName=" + userName + ", password=" + password + ", roleId=" + roleId + "]";
}
}
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
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
框架目前只提供几个基础注解,下面有详细的注解说明,自动SQL是通过实体类的注解进行SQL封装。
# Step.4
编写控制器接口,访问测试成功获取数据。