1.快速开始
2.代码生成器
3.CRUD接口——Service CRUD接口
4.CRUD接口——Mapper CRUD接口
5.条件构造器
6.分页插件
7.Sequence主键
8.自定义ID生成器
9.逻辑删除
10.乐观锁插件
11.自动填充
之前在看视频的时候稍微接触过Mybatis-plus,但是没有进过系统的学习,仅仅知道一些简单的功能。
不过,很早就听说过了Mybatis-plus是一个好东西,借用官网上的一句话来说明它的功能:
MyBatis-Plus(简称 MP)是一个MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
下面我写的所有东西都是在官网上学来的,官网地址是https://mybatis.plus/,建议大家在官网上学习,也可以看看我的,因为作为一名普通的大学生,我遇到的问题,你们也同样可能遇到,当你们在官网学习时遇到问题时,也可以尝试看一下我的代码和注释,看看我有没有合适的解决方式,为了更方便的找到代码,我会将目录设置的和官网一样。
目录:https://editor.csdn.net/md/
下面开始学习吧!
一、.环境和前置学习的基础
(如果没有的话,点击下方链接进行学习)
-
拥有 Java 开发环境以及相应 IDE
1、Java学习基础(https://how2j.cn/stage/12.html)
2、IDEA下载(提取码: yx20) -
熟悉 Spring Boot
https://how2j.cn/k/springboot/springboot-eclipse/1640.html -
熟悉 Maven
https://how2j.cn/k/maven/maven-introduction/1328.html
二、准备工作
2.1 新建一张表如图所示
2.2 建表代码如下:
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)
);
2.3 数据如下
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');
2.4 新建Springboot工程
选择File -> New -> Project -> Maven - > Next
输入项目名称,我这里使用的是“Mybatis_plus_demo” -> Finsh
下面爆红的原因是,在这个目录下有了这个文件(因为我之前新建过)
项目创建完成后,结构如图所示
在项目中添加所需要的的文件,最终的结构如下所示
在pom.xml中引入依赖:
首先引入 Spring Boot Starter 父工程:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
<relativePath/>
</parent>
然后引入spring-boot-starter、spring-boot-starter-test、mybatis-plus-boot-starter、lombok、mysql 依赖
(官网上数据库使用的是H2,我这里使用的是mysql)
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
配置
在application.yml文件上添加mysql数据库的相关配置
(账号和密码修改为你自己的)
# mysql数据库连接
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=admit
这里可能会出现问题,这可能是由于mysql版本的不同而引起的
查看mysql版本
mysql8以上的使用我的配置就可以了,之下的版本使用下面的配置
# mysql数据库连接
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus
spring.datasource.username=root
spring.datasource.password=admit
Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹
@SpringBootApplication
@MapperScan("com.hk.mapper")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
编写实体类 User.java(此处使用了 Lombok 简化代码)
@Data
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
编写Mapper类 UserMapper.java
public interface UserMapper extends BaseMapper<User> {
}
最后进行测试
@RunWith(SpringRunner.class)
@SpringBootTest
public class Test {
@Autowired
private UserMapper userMapper;
@org.junit.Test
public void testSelect() {
System.out.println("———查询测试———");
List<User> userList = userMapper.selectList(null);
userList.forEach(System.out::println);
}
}
UserMapper 中的 selectList() 方法的参数为 MP 内置的条件封装器 Wrapper,所以不填写就是无任何条件
输出结果如下所示
三、总结
我们可以从上面看出,你仅仅只是在UserMapper中继承了BaseMapper,然后就能够查询出数据,不需要你自己动手写service的方法,这件事Mybatis-plus帮你做了。
但 MyBatis-Plus 的强大远不止这些功能,想要详细了解 MyBatis-Plus 的强大功能?那就继续往下看吧!