Skip to content

MybatisPlus

学习参考资料:

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

MybatisPlus 的愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍:

mybatisPlus

1.快速开始

通过一个简单的 Demo 来阐述 MyBatis-Plus 的强大功能

1.1.数据库

其对应的数据库 Schema 脚本如下:

sql
DROP TABLE IF EXISTS `user`;

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

其对应的数据库 Data 脚本如下:

sql
DELETE FROM `user`;

INSERT INTO `user` (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');

使用 h2 数据库快速开始:

1.2.依赖和配置

在 SpringBoot 工程中引入依赖:

xml
<dependencies>
    <!--========================================spring相关=====================================-->
    <!-- 引入web支持 -->
    <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>


    <!--========================================中间件=====================================-->
    <!--h2数据库-->
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
    </dependency>
    <!--mybatisPlus-->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
        <version>3.5.9</version>
    </dependency>
</dependencies>

SpringBoot 项目的主启动类:

java
@SpringBootApplication
@MapperScan("com.fkx.mybatisplus.mapper")
public class AppMybatisPlus {
    public static void main(String[] args) {
        SpringApplication.run(AppMybatisPlus.class);
    }
}

配置文件 application.yml

yml
# DataSource Config
spring:
  datasource:
    driver-class-name: org.h2.Driver
    username: root
    password: test
  sql:
    init:
      schema-locations: classpath:db/schema.sql
      data-locations: classpath:db/data.sql

1.3.框架搭建

和数据库表对应的实体类 user

java
@Data
@TableName("`user`")
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

编写 Mapper 接口类:

java
public interface UserMapper extends BaseMapper<User> {
}

1.4.开始使用

随便写一个,介绍 MybatisPlus 的强大:

java
@SpringBootTest
@Slf4j
public class UserTest {
    @Autowired
    private UserMapper userMapper;

    @Test
    void test01() {
        userMapper.selectList(null).forEach(System.out::println);
        /**
         * User(id=1, name=Jone, age=18, email=test1@baomidou.com)
         * User(id=2, name=Jack, age=20, email=test2@baomidou.com)
         * User(id=3, name=Tom, age=28, email=test3@baomidou.com)
         * User(id=4, name=Sandy, age=21, email=test4@baomidou.com)
         * User(id=5, name=Billie, age=24, email=test5@baomidou.com)
         */
    }
}

非常简洁,非常强大,不需要编写很多代码,还有更高级的功能可以去使用。