# 进入开发

# Step.1

开发过程中,在Service中注入QmData

@Service
public class UserServiceImpl implements UserService {

	@Resource
	private QmData qmData;
}
1
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

# 使用基础方法

# 【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

这里说明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

# 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

框架目前只提供几个基础注解,下面有详细的注解说明,自动SQL是通过实体类的注解进行SQL封装。

# Step.4

编写控制器接口,访问测试成功获取数据。

最近更新: 2019/10/17 上午4:20:42