logo

​MyBatis-Plus 从入门到上手干事!

作者:沙与沫2021.05.26 10:53浏览量:487

简介:​MyBatis-Plus 从入门到上手干事!

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射,而实际开发中,我们都会选择使用 MyBatisPlus,它是对 MyBatis 框架的进一步增强,能够极大地简化我们的持久层代码,下面就一起来看看 MyBatisPlus 中的一些奇淫巧技吧。

说明:本篇文章需要一定的 MyBatis 与 MyBatisPlus 基础。

MyBatis-Plus 官网地址 :https://baomidou.com/

CRUD

使用 MyBatisPlus 实现业务的增删改查非常地简单,一起来看看吧。
1.首先新建一个 SpringBoot 工程,然后引入依赖:

<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-plus-boot-starter</artifactId>
  <version>3.4.2</version>
</dependency>
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <scope>runtime</scope>
</dependency>
<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
</dependency>

2.配置一下数据源:

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    url: jdbc:mysql:///mybatisplus?serverTimezone=UTC
    password: 123456

3.创建一下数据表:
CREATE DATABASE mybatisplus;

USE `mybatisplus`;

DROP TABLE IF EXISTS `tbl_employee`;

CREATE TABLE `tbl_employee` (
  `id` bigint(20) NOT NULL,
  `last_name` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  `gender` char(1) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=gbk;

insert  into `tbl_employee`(`id`,`last_name`,`email`,`gender`,`age`) values (1,'jack','jack@qq.com','1',35),(2,'tom','tom@qq.com','1',30),(3,'jerry','jerry@qq.com','1',40);

4.创建对应的实体类:

@Data
public class Employee {

    private Long id;
    private String lastName;
    private String email;
    private Integer age;
}

5.编写 Mapper 接口:

public interface EmployeeMapper extends BaseMapper<Employee> {
}

我们只需继承 MyBatisPlus 提供的 BaseMapper 接口即可,现在我们就拥有了对 Employee 进行增删改查的 API,比如:

@SpringBootTest
@MapperScan("com.wwj.mybatisplusdemo.mapper")
class MybatisplusDemoApplicationTests {

    @Autowired
    private EmployeeMapper employeeMapper;

    @Test
    void contextLoads() {
        List<Employee> employees = employeeMapper.selectList(null);
        employees.forEach(System.out::println);
    }
}

运行结果:
org.springframework.jdbc.BadSqlGrammarException:

### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: Table 'mybatisplus.employee' doesn't exist

程序报错了,原因是不存在 employee 表,这是因为我们的实体类名为 Employee,MyBatisPlus 默认是以类名作为表名进行操作的,可如果类名和表名不相同(实际开发中也确实可能不同),就需要在实体类中使用 @TableName 注解来声明表的名称:

@Data
@TableName("tbl_employee") // 声明表名称
public class Employee {

    private Long id;
    private String lastName;
    private String email;
    private Integer age;
}

重新执行测试代码,结果如下:

Employee(id=1, lastName=jack, email=jack@qq.com, age=35)
Employee(id=2, lastName=tom, email=tom@qq.com, age=30)
Employee(id=3, lastName=jerry, email=jerry@qq.com, age=40)

BaseMapper 提供了常用的一些增删改查方法:


具体细节可以查阅其源码自行体会,注释都是中文的,非常容易理解。

在开发过程中,我们通常会使用 Service 层来调用 Mapper 层的方法,而 MyBatisPlus 也为我们提供了通用的 Service:

相关文章推荐

发表评论