「Spring Boot 系列」09. Spring Boot集成MyBatis-Plus实现CRUD

目录

  • 前言
  • 一、创建数据库
    • 1、添加数据表
    • 2、填充数据表
  • 二、整合MyBatis-Plus
    • 1、新建springboot工程
    • 2、导入对应的starter
    • 3、 添加配置
    • 4、创建实体类
    • 5、定义数据层接口,继承BaseMapper
  • 三、CRUD的实现
    • 1、添加
    • 2、修改
    • 3、删除
      • 3.1 通过id删除单条数据
      • 3.2 通过id删除多条数据
      • 3.3 通过map批量删除
    • 4、查询
      • 4.1 通过id查询单条数据
      • 4.2 查询所有数据

前言

MyBatis-Plus(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。今天我们主要通过一个简单的案例来体会MyBatis-Plus功能的强大之处。

「Spring Boot 系列」09. Spring Boot集成MyBatis-Plus实现CRUD_第1张图片

话不多说,直接进入正题

一、创建数据库

1、添加数据表

CREATE TABLE user
(
    id BIGINT(20) NOT NULL COMMENT '主键ID',
    name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
    age INT(11) NULL DEFAULT NULL COMMENT '年龄',
    email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
    PRIMARY KEY (id)
);

「Spring Boot 系列」09. Spring Boot集成MyBatis-Plus实现CRUD_第2张图片

2、填充数据表

INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, '[email protected]'),
(2, 'Jack', 20, '[email protected]'),
(3, 'Tom', 28, '[email protected]'),
(4, 'Sandy', 21, '[email protected]'),
(5, 'Billie', 24, '[email protected]');

「Spring Boot 系列」09. Spring Boot集成MyBatis-Plus实现CRUD_第3张图片

二、整合MyBatis-Plus

1、新建springboot工程

具体步骤可以参考spring boot工程的创建

2、导入对应的starter

<dependency>
    <groupId>com.baomidougroupId>
    <artifactId>mybatis-plus-boot-starterartifactId>
    <version>3.5.2version>
dependency>

<dependency>
    <groupId>mysqlgroupId>
    <artifactId>mysql-connector-javaartifactId>
    <scope>runtimescope>
dependency>

<dependency>
    <groupId>org.projectlombokgroupId>
    <artifactId>lombokartifactId>
    <optional>trueoptional>
dependency>

3、 添加配置

#配置dataSource
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test?serverTimezone=UTC
    username: root
    password: root
#配置日志,方便查看sql语句
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

4、创建实体类

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
	
	@TableId(type = IdType.AUTO)
    private Long id;
    private String name;
    private Integer age;
    private String email;

}

5、定义数据层接口,继承BaseMapper

@Component
public interface UserMapper extends BaseMapper<User> {
	//这里不需要写任何代码
	//MyBatis-Plus已经给我们准备好了,直接拿来用即可
}

三、CRUD的实现

1、添加

@SpringBootTest
@MapperScan("com.example.dao")  //扫描数据层接口所在的包
class MybatisPlusApplicationTests {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testInsert(){
        User user = new User();
        user.setName("aaa");
        user.setAge(3);
        user.setEmail("[email protected]");
        int insert = userMapper.insert(user);
        System.out.println(insert);
    }
}

「Spring Boot 系列」09. Spring Boot集成MyBatis-Plus实现CRUD_第4张图片

2、修改

@Test
public void testUpdate(){
    User user = new User();
    user.setId(6L);
    user.setName("dada");
    user.setEmail("[email protected]");
    int i = userMapper.updateById(user);
    System.out.println(i);
}

「Spring Boot 系列」09. Spring Boot集成MyBatis-Plus实现CRUD_第5张图片

3、删除

3.1 通过id删除单条数据

这里我们删除 id 为 6 的用户

// 测试通过id单个删除
@Test
public void testDeleteById(){
    userMapper.deleteById(1L);
}

「Spring Boot 系列」09. Spring Boot集成MyBatis-Plus实现CRUD_第6张图片

3.2 通过id删除多条数据

删除之前我们先多插入几条数据,方便测试

「Spring Boot 系列」09. Spring Boot集成MyBatis-Plus实现CRUD_第7张图片

// 测试通过id批量删除
@Test
public void testDeleteBatchIds(){
    userMapper.deleteBatchIds(Arrays.asList(8L,9L,10L));
}

「Spring Boot 系列」09. Spring Boot集成MyBatis-Plus实现CRUD_第8张图片

3.3 通过map批量删除

我们再添加一条数据,删除数据表中年龄等于 18 岁的用户
「Spring Boot 系列」09. Spring Boot集成MyBatis-Plus实现CRUD_第9张图片

// 测试通过map批量删除
@Test
public void testDeleteByMap(){
    HashMap<String, Object> map = new HashMap<>();
    map.put("age","18");
    userMapper.deleteByMap(map);
}

「Spring Boot 系列」09. Spring Boot集成MyBatis-Plus实现CRUD_第10张图片

4、查询

4.1 通过id查询单条数据

// 测试通过id查询
@Test
public void testSelectById(){
    User user = userMapper.selectById(2);
    System.out.println(user);
}

「Spring Boot 系列」09. Spring Boot集成MyBatis-Plus实现CRUD_第11张图片

4.2 查询所有数据

 @Test
public void selectList() {
    List<User> list = userMapper.selectList(null);
    list.forEach(System.out::println);
}

「Spring Boot 系列」09. Spring Boot集成MyBatis-Plus实现CRUD_第12张图片
至此,MyBatis-Plus实现的CRUD就告一段落了,有没有觉得特别爽!!!

你可能感兴趣的:(Spring,Boot从入门到入魔,spring,boot,java,mybatis)