前言
mybatis相信都不陌生,目前互联网公司大部分都使用mybatis作为持久层框架,无他,因为可以直接在xml文件中编写SQL语句操作数据库,灵活。但是我们在使用的时候,也会发现有很多增删改查的SQL是每个表都会有的基本操作,如果每个表都写一套增删改查的SQL显然是非常耗时耗力的。
于是乎,就有了mybatis-plus这个框架。正如官网所说,mybatis-plus是为简化开发而生
。
mybatis-plus有以下特点:
- 只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。
- 只需简单配置,即可快速进行单表CRUD操作,节省大量时间。
- 代码生成,物理分页,性能分析等功能一应俱全。
一、整合mybatis-plus
这里用的是SpringBoot2.5.2做演示。首先导入依赖:
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- 引入 mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.0</version>
</dependency>
然后在application.properties文件配置数据库信息:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/user?createDatabaseIfNotExist=true
spring.datasource.username=root
spring.datasource.password=root123456
#mapper.xml文件路径地址
mybatis-plus.mapper-locations=classpath:mapper/*Mapper.xml
在启动类加上扫描注解:
@SpringBootApplication
@MapperScan(basePackages = "com.yehongzhi.mydemo.mapper")
public class MydemoApplication {
public static void main(String[] args) {
SpringApplication.run(MydemoApplication.class, args);
}
}
其实这样就完成了,但是我们要建个表进行测试。
CREATE TABLE `user` (
`id` char(36) NOT NULL DEFAULT '' COMMENT 'ID',
`name` varchar(255) DEFAULT '' COMMENT '姓名',
`age` int(3) DEFAULT NULL COMMENT '年龄',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 初始化4条数据
INSERT INTO `user`.`user` (`id`, `name`, `age`) VALUES ('1345fc0985b111eba0e488d7f66fdab8', '观辰', '20');
INSERT INTO `user`.`user` (`id`, `name`, `age`) VALUES ('d47561e885b011eba0e488d7f66fdab8', '姚大秋', '30');
INSERT INTO `user`.`user` (`id`, `name`, `age`) VALUES ('ef2741fe87f011eba0e488d7f66fdab8', '周星驰', '60');
INSERT INTO `user`.`user` (`id`, `name`, `age`) VALUES ('ff784f6b85b011eba0e488d7f66fdab8', '李嘉晟', '33');
建了表之后,再创建一个User实体类对应:
//表名
@TableName("user")
public class User {
//主键
@TableId(type = IdType.UUID)
private String id;
//姓名
private String name;
//年龄
private Integer age;
//getter、setter方法
}
接着创建UserMapper接口类,,然后继承BaseMapper:
@Repository
public interface UserMapper extends