Skip to content

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

image.png

7.源码地址

09-spring-boot-mybatis-plus