- 一、初始化数据库(基于 HeidiSQL)
- 1.1 创建数据库
- 1.2创建数据表
- 1.3 初始化数据
- 二、初始化项目(基于Spring Boot)
- 2.1 创建项目
- 2.2 新增依赖
- 2.3 数据库配置
- 2.4 配置 MyBatis Plus
- 2.5 创建实体类
- 2.6 创建Mapper层接口
- 2.7 创建Server层接口
- 2.8 创建Server层接口实现
- 2.9 创建 Controller 控制器类
- 三、测试项目(基于浏览器)
- 3.1 运行项目
- 3.2 测试查询接口
- 3.3 测试新增接口
- 3.4 测试编辑接口
- 3.5 测试删除接口
- 四、总结
一、初始化数据库(基于 HeidiSQL)
1.1 创建数据库
在 MyBatisPlus 快速入门体验之前,请同学们运行 HeidiSQL。
运行后,输入您电脑本地 MySQL 的配置,点击打开,界面如下图所示。

如果您没有安装HeidiSQL,可以进入 HeidiSQL 官网 进行下载安装,MySQL同理。
请同学们新建一个数据库:mybatisplus,界面如下所示。


创建完成后,界面如下图所示。

1.2创建数据表
首先请同学们创建用户表 user,创建的 SQL 命令如下。
CREATE TABLE `user` (
`name` VARCHAR(50) NULL DEFAULT NULL,
`age` INT(10) NULL DEFAULT NULL,
`address` VARCHAR(50) NULL DEFAULT NULL,
`mobile` VARCHAR(50) NULL DEFAULT NULL
) ENGINE=InnoDB;

1.3 初始化数据
用户表 user 表创建完成后,接下来需要初始化
5
5
5 条用户的数据,SQL 命令如下。
INSERT INTO `user` (`name`, `age`, `address`, `mobile`) VALUES ('张三', 18, '测试地址1', '13600000001');
INSERT INTO `user` (`name`, `age`, `address`, `mobile`) VALUES ('李四', 19, '测试地址2', '13600000002');
INSERT INTO `user` (`name`, `age`, `address`, `mobile`) VALUES ('王五', 20, '测试地址3', '13600000003');
INSERT INTO `user` (`name`, `age`, `address`, `mobile`) VALUES ('赵六', 21, '测试地址4', '13600000004');
INSERT INTO `user` (`name`, `age`, `address`, `mobile`) VALUES ('郑七', 22, '测试地址5', '13600000005');

数据新增后,可以在 数据 页签查询用户数据,如下图所示。

提示:同学们也可以通过
SELECT * FROM user;命令进行查询。
二、初始化项目(基于Spring Boot)
2.1 创建项目
请同学们运行 IntelliJ IDEA,点击新建项目,界面如下图所示。

请同学们输入项目名称 mybatisplus,选择合适的项目路径,勾选 Maven 的打包方式,点击下一步,界面如下图所示。

继续点击创建按钮,即可完成项目创建,如下图所示。

项目创建完成后,如下图所示。

请同学们删除不必要的文件,只留下 src 和 pom.xml,如下图所示。
提示:鼠标单击选中文件后,点击 Delete 键即可删除。

2.2 新增依赖
请同学在 pom.xml 文件中,新增 3 3 3 个依赖,如下图所示。
- mysql-connector-java:用于连接 MySQL 数据库
- lombok:用于实体类的 get 和 set 方法生成
- mybatis-plus-boot-starter:mybatisplus 依赖

具体的依赖 XML 代码如下所示。
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.30</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>
同学们在 pom.xml 中更新完依赖后,需要按下图所示刷新 Maven,触发重新拉取依赖。

2.3 数据库配置
请同学们在 application.properties 文件中添加对数据库的配置,命令如下。
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mybatisplus?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&allowMultiQueries=true
spring.datasource.username=root
spring.datasource.password=123456
提示:如果是 mysql5.7 及以下版本,驱动字段请填写
com.mysql.jdbc.Driver
2.4 配置 MyBatis Plus
请同学们在 cn.zwz.mybatisplus 包下创建 config 包,用于存放mybatisplus 的配置文件。
接着在 cn.zwz.mybatisplus.config 包下创建 MybatisPlusConfig.java 配置类,代码如下。
package cn.zwz.mybatisplus.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author 郑为中
* CSDN: Designer 小郑
*/
@Configuration
@MapperScan({"cn.zwz.mybatisplus.mapper"})
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}

2.5 创建实体类
根据
1.2
1.2
1.2 节的 SQL 代码,创建 cn.zwz.mybatisplus.entity 包,再在包内创建 User 类,代码如下。
CREATE TABLE
user(
nameVARCHAR(50) NULL DEFAULT NULL,
ageINT(10) NULL DEFAULT NULL,
addressVARCHAR(50) NULL DEFAULT NULL,
mobileVARCHAR(50) NULL DEFAULT NULL
) ENGINE=InnoDB;
package cn.zwz.mybatisplus.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private String id;
private String name;
private Integer age;
private String address;
private String mobile;
}
其中 name 、age、address、mobile 四个字段和 SQL 命令中的列名称一一对应,id 是持久化到数据库所必备的字段。
@Data 注解用于自动生成 get 和 set 方法。
@AllArgsConstructor 注解用于自动生成全参构造,即等同于:
public User(String id, String name, Integer age, String address, String mobile) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
this.mobile = mobile;
}
@NoArgsConstructor 注解用于自动生成无参构造,即等同于:
public User() {
}
2.6 创建Mapper层接口
请同学们创建 cn.zwz.mybatisplus.mapper 包,再在包内创建 UserMapper 接口,代码如下。
package cn.zwz.mybatisplus.mapper;
import cn.zwz.mybatisplus.entity.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface UserMapper extends BaseMapper<User> {
}
此 Mapper 数据链路层接口无需实现任何方法,只需继承 Mybatis Plus 提供的 BaseMapper 接口即可。
同学们可以点开 BaseMapper 查询源码,发现此类已经提供了基础的增删改查接口。

2.7 创建Server层接口
请同学们创建 cn.zwz.mybatisplus.service 包,再在包内创建 IUserService 接口,代码如下。
package cn.zwz.mybatisplus.service;
import cn.zwz.mybatisplus.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
public interface IUserService extends IService<User> {
}
此 Service 服务层接口无需实现任何方法,只需继承 Mybatis Plus 提供的 IService 接口即可。
同学们可以点开 IService 查询源码,发现此类已经提供了基础的增删改查接口。

2.8 创建Server层接口实现
请同学们创建 cn.zwz.mybatisplus.serviceimpl 包,再在包内创建 IUserServiceImpl 接口实现类,代码如下。
package cn.zwz.mybatisplus.serviceimpl;
import cn.zwz.mybatisplus.entity.User;
import cn.zwz.mybatisplus.mapper.UserMapper;
import cn.zwz.mybatisplus.service.IUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service
@Transactional
public class IUserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
}
此实现类无需手动编写任何方法,只需继承 Mybatis Plus 提供的 ServiceImpl 类即可,并实现 IUserService 接口即可。
2.9 创建 Controller 控制器类
前面的 8 个小节,只是为了完成前期准备工作,在 2.9 小节就开始正式投入使用了。
请同学们创建 cn.zwz.mybatisplus.controller 包,在其中创建 UserController 类,代码如下所示。
package cn.zwz.mybatisplus.controller;
import cn.zwz.mybatisplus.entity.User;
import cn.zwz.mybatisplus.service.IUserService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/user")
@Transactional
public class UserController {
@Autowired
private IUserService iUserService;
@RequestMapping(value = "/getAll", method = RequestMethod.GET)
public List<User> getAll(){
return iUserService.list();
}
@RequestMapping(value = "/add", method = RequestMethod.GET)
public String add(@RequestParam String name,@RequestParam Integer age,@RequestParam String address,@RequestParam String mobile){
iUserService.saveOrUpdate(new User(new User(UUID.randomUUID().toString(),name,age,address,mobile));
return "学生添加成功!";
}
@RequestMapping(value = "/edit", method = RequestMethod.GET)
public String edit(@RequestParam String name,@RequestParam Integer age,@RequestParam String address,@RequestParam String mobile){
QueryWrapper<User> qw = new QueryWrapper<>();
qw.eq("name",name);
List<User> userList = iUserService.list(qw);
for (User user : userList) {
user.setAge(age);
user.setAddress(address);
user.setMobile(mobile);
iUserService.saveOrUpdate(user);
}
return "编辑成功" + userList.size() + "位学生";
}
@RequestMapping(value = "/delete", method = RequestMethod.GET)
public String delete(@RequestParam String name){
QueryWrapper<User> qw = new QueryWrapper<>();
qw.eq("name",name);
Long userCount = iUserService.count(qw);
if(userCount > 0) {
iUserService.remove(qw);
}
return "删除成功" + userCount + "位学生";
}
}
在 UserController 类中,实现了基础的增删改查方法,供前端调用。
三、测试项目(基于浏览器)
3.1 运行项目
请同学们找到主启动类 MybatisplusApplication,点击绿色三角形,运行项目。

运行完成后,终端如下图所示。

提示:若您启动报错,请首先排查依赖版本是否一致,因为 SpringBoot 3.x 版本和低版本的 Mybatis Plus 不兼容,其次再检查包名是否拼写错误。
3.2 测试查询接口
请同学们在浏览器输入:
http://localhost:8080/user/getAll
输出如下:
[{"name":"张三","age":18,"address":"测试地址1","mobile":"13600000001"},{"name":"李四","age":19,"address":"测试地址2","mobile":"13600000002"},{"name":"王五","age":20,"address":"测试地址3","mobile":"13600000003"},{"name":"赵六","age":21,"address":"测试地址4","mobile":"13600000004"},{"name":"郑七","age":22,"address":"测试地址5","mobile":"13600000005"}]
项目已将数据库中的数据查询到,并返回给前端,测试完成。
3.3 测试新增接口
请同学们在浏览器输入:
http://localhost:8080/user/add?name=11111&age=11&address=11111&mobile=13611111111
输出如下:
学生添加成功!
请同学们再次在浏览器输入:
http://localhost:8080/user/getAll
[{"id":null,"name":"张三","age":18,"address":"测试地址1","mobile":"13600000001"},{"id":null,"name":"李四","age":19,"address":"测试地址2","mobile":"13600000002"},{"id":null,"name":"王五","age":20,"address":"测试地址3","mobile":"13600000003"},{"id":null,"name":"赵六","age":21,"address":"测试地址4","mobile":"13600000004"},{"id":null,"name":"郑七","age":22,"address":"测试地址5","mobile":"13600000005"},{"id":"e082f6f4-9052-45bb-9671-2a52f0a5eebb","name":"11111","age":11,"address":"11111","mobile":"13611111111"}]
发现数据添加完成,测试完毕。
3.4 测试编辑接口
请同学们在浏览器输入:
http://localhost:8080/user/add?name=11111&age=22&address=22222&mobile=13622222222
输出如下:
编辑成功1位学生
请同学们再次在浏览器输入:
http://localhost:8080/user/getAll
[{"id":null,"name":"张三","age":18,"address":"测试地址1","mobile":"13600000001"},{"id":null,"name":"李四","age":19,"address":"测试地址2","mobile":"13600000002"},{"id":null,"name":"王五","age":20,"address":"测试地址3","mobile":"13600000003"},{"id":null,"name":"赵六","age":21,"address":"测试地址4","mobile":"13600000004"},{"id":null,"name":"郑七","age":22,"address":"测试地址5","mobile":"13600000005"},{"id":"e082f6f4-9052-45bb-9671-2a52f0a5eebb","name":"11111","age":22,"address":"22222","mobile":"13622222222"}]
发现指定数据编辑完成,测试完毕。
3.5 测试删除接口
请同学们在浏览器输入:
http://localhost:8080/user/add?name=11111&age=22&address=22222&mobile=13622222222
输出如下:
删除成功1位学生
请同学们再次在浏览器输入:
http://localhost:8080/user/getAll
[{"id":null,"name":"张三","age":18,"address":"测试地址1","mobile":"13600000001"},{"id":null,"name":"李四","age":19,"address":"测试地址2","mobile":"13600000002"},{"id":null,"name":"王五","age":20,"address":"测试地址3","mobile":"13600000003"},{"id":null,"name":"赵六","age":21,"address":"测试地址4","mobile":"13600000004"},{"id":null,"name":"郑七","age":22,"address":"测试地址5","mobile":"13600000005"}]
发现指定数据删除完成,测试完毕。
四、总结
以上就是 MyBatisPlus 的快速入门体验,可以发现开发者可以无需编写 SQL 代码,即可快速实现简单的增删改查功能,非常方便。
当然 MyBatisPlus 还有更强大的功能,支持日常开发中 99% 的数据库读写需求,会在后面的章节中继续讲解。



















