下面是“SpringBoot整合MyBatis-Plus3.1教程详解”的完整攻略。本文主要分为以下几个部分:
- 前置知识
- 环境准备
- 导入依赖
- 配置数据源
- 定义实体类
- 定义Mapper接口
- CRUD操作示例1
- CRUD操作示例2
1. 前置知识
在学习本教程之前,需要对SpringBoot和MyBatis-Plus有一定的了解。如果你还不熟悉这两个框架的基本使用方法,可以先去官网了解一下,这里就不再赘述。
2. 环境准备
在开始之前,需要先准备好以下环境:
- JDK 8+(推荐使用JDK 11)
- IntelliJ IDEA(或其他IDE)
- Maven 3.5+(也可以使用Gradle)
3. 导入依赖
在创建完一个SpringBoot项目之后,首先要做的是在项目的pom.xml
文件中导入MyBatis-Plus的依赖:
<!-- MyBatis-Plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.2</version>
</dependency>
4. 配置数据源
如果你使用的是MySQL数据库,可以在application.properties
中配置数据源:
# 数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
5. 定义实体类
在MyBatis-Plus中,实体类对应的表是通过@TableName
注解来指定的。例如,定义一个User
实体类,并将其映射到user
表:
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("user")
public class User {
@TableId(type = IdType.AUTO)
private Integer id;
private String name;
private Integer age;
private String email;
}
@Data
注解:Lombok注解,自动生成getter/setter
等方法。@AllArgsConstructor
和@NoArgsConstructor
注解:Lombok注解,自动生成全参构造方法和无参构造方法。@TableName
注解:指定实体类对应的表名。@TableId
注解:指定实体类对应的主键,其中type
属性指定主键生成策略。
6. 定义Mapper接口
在MyBatis-Plus中,Mapper接口不需要手动编写SQL语句,只需要继承BaseMapper
接口,即可使用MyBatis-Plus提供的基本CRUD方法。例如,定义一个UserMapper
接口:
public interface UserMapper extends BaseMapper<User> {
}
7. CRUD操作示例1
下面以UserMapper
接口为例,介绍如何使用MyBatis-Plus进行基本的CRUD操作。假设我们要实现以下操作:
- 新增用户
- 查询所有用户
- 查询指定ID的用户
- 更新用户信息
- 删除用户
新增用户:
@Autowired
private UserMapper userMapper;
public int addUser(User user) {
return userMapper.insert(user);
}
查询所有用户:
public List<User> getUserList() {
return userMapper.selectList(null);
}
查询指定ID的用户:
public User getUserById(Integer id) {
return userMapper.selectById(id);
}
更新用户信息:
public int updateUser(User user) {
return userMapper.updateById(user);
}
删除用户:
public int deleteUser(Integer id) {
return userMapper.deleteById(id);
}
8. CRUD操作示例2
在MyBatis-Plus中,除了基本的CRUD操作外,还提供了很多其他有用的方法,例如分页查询、条件查询等。下面以分页查询为例,介绍如何使用MyBatis-Plus完成复杂查询操作。
假设我们要实现以下操作:
- 分页查询用户列表
- 条件查询指定名字的用户
分页查询用户列表:
public List<User> getUserListByPage(Integer pageNum, Integer pageSize) {
Page<User> page = new Page<>(pageNum, pageSize);
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
return userMapper.selectPage(page, queryWrapper).getRecords();
}
Page
:调用分页查询方法之前创建好的分页对象。LambdaQueryWrapper
:使用Lambda表达式构造查询条件。userMapper.selectPage(page, queryWrapper)
:调用分页查询方法,返回分页结果。
条件查询指定名字的用户:
public List<User> getUserListByName(String name) {
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getName, name);
return userMapper.selectList(queryWrapper);
}
LambdaQueryWrapper
:使用Lambda表达式构造查询条件。queryWrapper.eq(User::getName, name)
:构造等值查询条件。userMapper.selectList(queryWrapper)
:调用查询方法,返回查询结果。
至此,本文所介绍的MyBatis-Plus基本使用方法和示例已经全部完成。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合MyBatis-Plus3.1教程详解 - Python技术站