Spring Boot(九) Spring Boot整合MybatisPlus
在Spring Boot(六):Spring Boot整合Mybatis中,我们已经对Mybatis做了整合,实现了简单的怎删改查操作。在使用Mybatis简单增删改查操作时,仍然需要在对应的mapper文件中编写sql语句和在Mapper层写一些增删改查接口代码,而mybatisPlus则对这些做了封装,简化了操作。下面我们在mybatis整合源码基础上做简单调整,来实现mybatisPlus的整合。
1.调整mybatisPlus依赖文件
xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>2.3</version>
</dependency>
2.mybatisPlus配置
yaml
# mybatis-plus相关配置
mybatis-plus:
# xml扫描,多个目录用逗号或者分号分隔(告诉 Mapper 所对应的 XML 文件位置)
mapper-locations: classpath:mapper/*.xml
# 扫描pojo包,给包下所有pojo对象起别名,在xml中则可以不使用全类名
type-aliases-package: com.w3cjava.modules.*.entity
# 以下配置均有默认值,可以不设置
global-config:
db-config:
#主键类型 auto:"数据库ID自增" 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
id-type: auto
#字段策略 IGNORED:"忽略判断" NOT_NULL:"非 NULL 判断") NOT_EMPTY:"非空判断"
field-strategy: NOT_EMPTY
#数据库类型
db-type: MYSQL
configuration:
# 是否开启自动驼峰命名规则映射:从数据库列名到Java属性驼峰命名的类似映射
map-underscore-to-camel-case: true
# 如果查询结果中包含空值的列,则 MyBatis 在映射的时候,不会映射这个字段
call-setters-on-nulls: true
# 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
3.实体类
java
public class User implements Serializable {
public User() {
}
public User(Long id,String name, String password, String mail, String date) {
this.id = id;
this.name = name;
this.password = password;
this.mail = mail;
this.date = date;
}
// ID,用户名,密码,邮箱,注册时间
private Long id;
private String name;
private String password;
private String mail;
private String date;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", password='" + password + '\'' +
", mail='" + mail + '\'' +
", date='" + date + '\'' +
'}';
}
}
4.dao层
Dao层只要简单的继承BaseMapper即可,无需编写增删改查接口
java
@Mapper
public interface UserDao extends BaseMapper<User> {
}
5.mapper配置
同样的,mapper层也省掉了简单的增删改查语句的编写。如果遇到复杂的语句,仍然可以通过mapper.xml中编写,在dao层增加对应的接口。
xml
<?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.w3cjava.modules.user.dao.UserDao">
</mapper>
6.Junit测试
对Junit测试部分做简单改造,直接使用BaseMapper层封装的增删改查调用。
java
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserServiceTest {
@Autowired
private UserDao userDao;
@Test
public void testInsertUser() {
User user = new User(1L,"w3cjava", "123456", "w3cjava@w3cjava.com", "2017-01-01");
userDao.insert(user);
}
@Test
public void testUpdateUser() {
User user = new User(1L, "w3cjava1", "1234561", "1w3cjava@w3cjava.com", "2017-01-01");
userDao.updateById(user);
}
@Test
public void testFindAll() {
System.out.println(userDao.selectList(null));
}
@Test
public void testDelete() {
userDao.deleteById(1L);
}
@Test
public void testCURD() {
testInsertUser();
testUpdateUser();
testFindAll();
testDelete();
}
}
运行Junit测试
java
@Test
public void testCURD() {
testInsertUser();
testUpdateUser();
testFindAll();
testDelete();
}