[学习笔记] MyBatis-Plus之MyBatis-Plus入门

# 学习 # · 2021-05-11

MyBatis-Plus简介

1、MyBatis-Plus:是一个 MyBatis的增强工具,为简化开发、提高效率而生。

2、MyBatis-Plus官网简介:https://mp.baomidou.com/guide/

3、MyBatis-Plus特性:无侵入、损耗小、强大的CRUD操作、支持Lambda形式调用、支持主键自动生成、支持ActiveRecord模式、支持自定义全局通用操作、内置代码生成器、内置分页插件、内置性能分析插件、内置全局拦截插件等。

4、MyBatis-Plus框架结构:


MyBatis-Plus初入门体验

1、初始化数据库(mybatisplus_demo)并初始化数据。

DROP TABLE IF EXISTS user;

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

DELETE FROM user;

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]');

2、初始化SpringBoot工程,并添加Maven依赖(MyBatis Plus Framrwork和MySQL Driver)。

<!-- MyBatisPlus依赖 -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.2</version>
</dependency>
<!-- MySQL依赖 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

3、修改项目配置文件application.yml,连接到数据库。

spring:
  datasource:
      # 数据库驱动
    driver-class-name: com.mysql.cj.jdbc.Driver
    # 数据库连接池
    type: org.springframework.jdbc.datasource.DriverManagerDataSource
    # 数据库URL
    url: jdbc:mysql://localhost:3306/mybatisplus_demo?serverTimezone=UTC
    # 数据库用户名与密码
    username: root
    password: 123456

4、编写User实体类。

/**
 * @Package: com.example.pojo
 * @Description: User实体类
 * @Author 多仔
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

5、编写UserMapper接口类。

/**
 * @Package: com.example.mapper
 * @Description: UserMapper类
 * @Author 多仔
 */
@Mapper
public interface UserMapper extends BaseMapper<User> {
    // 在对应的Mapper接口类上继承MyBatisPlus基本的BaseMapper
    // 继承的BaseMapper接口是泛型类(interface BaseMapper<T>)
    // 泛型对应某一POJO实体
    // 此时MyBatisPlus自动实现对这一实体的基本CRUD操作
}

6、在DemoApplication启动类中添加配置MapperScan注解。

@SpringBootApplication
//配置MapperScan注解
@MapperScan("com.example.mapper")
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

7、在测试类中编写测试代码。

@Autowired
UserMapper userMapper;

@Test
void contextLoads() {
    // selectList()方法,传入条件构造器(queryWrapper)作为参数,null表示无条件
    List<User> userList = userMapper.selectList(null);
    for (User user : userList) {
        System.out.println(user);
    }
}


MyBatis-Plus配置日志输出

1、在项目中配置MyBatis-Plus日志输出以查看执行的SQL语句记录。修改application.yml文件。

mybatis-plus:
  configuration:
      # 在控制台输出日志信息
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

2、运行测试,在控制台查看日志信息。


MyBatis-Plus CRUD之插入数据

1、在测试类中编写测试代码。

@Test
void insertUser() {
    User user = new User();
    user.setName("小红");
    user.setAge(20);
    user.setEmail("[email protected]");
    userMapper.insert(user);
}

2、运行测试查看结果。结论发现:执行插入操作时,程序会自动生成主键ID。


MyBatis-Plus主键生成策略

1、MyBatis-Plus执行insert时主键生成策略的配置:

(1)修改User实体类,使用@TableId注解定义主键ID的生成策略。

@TableId(type = IdType.AUTO)
private Long id;

(2)运行测试。

2、主键生成策略(IdType):

(1)AUTO:数据库表主键要设置为自增,数据库id自增。

(2)NONE:未设置主键id。

(3)INPUT:手动输入数据库id。

(4)ASSIGN_ID(雪花算法,默认策略):自动生成主键ID,主键类型为Long或String。

(5)ASSIGN_UUID:自动生成不含中划线的UUID作为主键。主键类型为String。

(6)ID_WORKER:全局唯一的idWorker数值类型。

(7)ID_WORKER_STR:全局唯一,idWorker的字符串表示。

(8)UUID:全局唯一,UUID生成。

3、全局配置策略的方法:修改application.yml文件。

mybatis-plus:
  global-config:
    db-config:
      id-type: auto
如无特殊说明,本博所有文章均为博主原创。

如若转载,请注明出处:一木林多 - https://www.l5v.cn/archives/299/

评论