使用MyBatis-Plus实现CRUD

726 阅读1分钟

Mybatis-plus快速搭建

创建一个示例Spring-boot-web项目

引入 Spring Boot Starter 父工程:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.4.RELEASE</version>
    <relativePath/>
</parent>

引入相关依赖:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.4.3.1</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.20</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

创建数据库表

create table classes
(
    id   int auto_increment comment '班级ID'
        primary key,
    name varchar(64) not null comment '班级名称',
    constraint class_name_uindex
        unique (name)
);

表对应的实体类

@Data
@TableName("classes")
public class ClassEntity {

    /*
        班级ID
     */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /*
        班级名称
     */
    private String name;
}

Mapper类

@Mapper
public interface IClassMapper extends BaseMapper<ClassEntity> {
}

CRUD使用示例

创建Test类

@SpringBootTest
@RunWith(SpringRunner.class)
public class ClassTest {

    @Autowired
    private IClassMapper classMapper;
}

插入数据

@Test
public void testInsert() {
    ClassEntity classEntity = new ClassEntity();
    classEntity.setName("className");
    classMapper.insert(classEntity);
    System.out.println(classMapper.selectById(classEntity.getId()));
}

删除数据

@Test
public void testDelete() {
    ClassEntity classEntity = new ClassEntity();
    classEntity.setName("testDelete");
    classMapper.insert(classEntity);
    classMapper.deleteById(classEntity.getId());
}

修改数据

@Test
public void testUpdate() {
    ClassEntity classEntity = classMapper.selectById(2);
    classEntity.setName("testUpdate");
    classMapper.updateById(classEntity);
}

条件查询

@Test
public void testSelect() {
    String name = "class";
    QueryWrapper<ClassEntity> wrapper = Wrappers.query(new ClassEntity())
            .eq("id", 1)
            .or()
            .like(Strings.isNotEmpty(name),"name", name);

    List<ClassEntity> classEntities = classMapper.selectList(wrapper);
    classEntities.forEach(System.out::println);
}

官方文档

mp.baomidou.com/guide