MyBatis-Plus快速入门及使用

一、MyBatis-Plus入门开发及配置

1、MyBatis-Plus简介

MyBatis-Plus(简称:MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。

MyBatis-Plus易于学习,官网提供了基于SpringBoot的中文文档,社区活跃,版本迭代快速。

MyBatis-Plus官方文档:baomidou.com/guide/,可作为日…

2、基于SpringBoot项目集成MyBatis-Plus

可以基于IDEA的Spring Initializr进行SpringBoot项目的创建,或者移步至Boot官网构建一个简单的web starter项目:start.spring.io/

①导入MyBatis-Plus相关的依赖包、数据库驱动、lombok插件包:

pom.xml文件配置

<dependencies>
    <!--数据库驱动-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <!--lombok-->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>
    <!--mybatis-plus:版本3.0.5-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.0.5</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>
复制代码

②配置数据库驱动、日志级别

application.properties配置

#mysql5 驱动不同,默认驱动:com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=admin
spring.datasource.url=jdbc:mysql://localhost:3306/mybatisplus_0312?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
#mysql8 驱动不同:com.mysql.cj.jdbc.Driver、需要增加时区的配置:serverTimezone=GMT%2B8,mysql8的驱动向下兼容mysql5
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

#配置日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
复制代码

3、入门Hello World进行数据库操作

基于官网示例来构建数据库表单及POJO数据类:baomidou.com/guide/quick…

MybatisPlusApplication启动类:

@SpringBootApplication
//配置Mapper接口类扫描
@MapperScan("com.fengye.mapper")
//配置Spring Bean注解扫描
@ComponentScan(basePackages = "com.fengye.mapper")
public class MybatisPlusApplication {
    public static void main(String[] args) {
        SpringApplication.run(MybatisPlusApplication.class, args);
    }
}
复制代码

UserMapper类:

@Repository //持久层注解,表示该类交给Springboot管理
public interface UserMapper extends BaseMapper<User> {
}
复制代码

User类:

@Data
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}
复制代码

基础CRUD操作:

@SpringBootTest
class MybatisPlusApplicationTests {

    @Autowired  //需要配置SpringBoot包扫描,否则此处使用@Autowired会报警告
    //@Resource
    private UserMapper userMapper;

    @Test
    void testSelect() {
        System.out.println(("----- selectAll method test ------"));
        List<User> userList = userMapper.selectList(null);
        Assert.assertEquals(5, userList.size());
        userList.forEach(System.out::println);
    }

    @Test
    void testInsert(){
        System.out.println("----- insert method test ------");
        User user = new User();
        user.setName("枫夜爱学习");
        user.setAge(20);
        user.setEmail("241337663@qq.com");
        int insertId = userMapper.insert(user);
        System.out.println(insertId);
    }

    @Test
    void testUpdate(){
        System.out.println("----- update method test ------");
        User user = new User();
        user.setId(1370382950972436481L);
        user.setName("苞米豆最爱");
        user.setAge(4);
        user.setEmail("baomidou@github.com");
        int updateId = userMapper.updateById(user);
        System.out.println(updateId);
        System.out.println(user);
    }

    @Test
    void testDelete(){
        System.out.println("----- delete method test ------");
        int deleteId = userMapper.deleteById(1370386235364118529L);
        System.out.println(deleteId);
    }
}
复制代码

4、主键生成策略配置

主键生成策略:

使用@TableId(type = IdType.AUTO,value = "id") ,value属性值当实体类字段名和数据库一致时可以不写,这里的value指的是数据库字段名称,type的类型有以下几种:

public enum IdType {
    AUTO(0),   //Id自增操作
    NONE(1),  //未设置主键
    INPUT(2),  //手动输入,需要自己setID值
    ID_WORKER(3),  //默认的全局唯一id
    UUID(4),   //全局唯一id  uuid
    ID_WORKER_STR(5);  //ID_WORKER的字符串表示法
    ...
}
复制代码

目前MyBatis-Plus官方文档建议的id主键设置为:@TableId(type = IdType.INPUT)

原文地址:https://www.cnblogs.com/lyck/p/14406259.html