Spring Boot使用Mybatis-Plus查询方法解析
Mybatis-Plus简介
Mybatis-Plus是一个Mybatis的增强工具,在Mybatis的基础上扩展了一些实用的功能,例如分页、逻辑删除、自动填充等。
配置Mybatis-Plus
在Spring Boot项目中使用Mybatis-Plus需要先配置相关依赖,可以在pom.xml
文件中添加如下依赖:
<!-- Mybatis-Plus 核心依赖 -->
<dependency>
<groupId>com.baomidou.mybatisplus</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3.1</version>
</dependency>
<!-- Mybatis-Plus 代码生成器依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.3.1</version>
</dependency>
创建实体类和Mapper
在使用Mybatis-Plus之前需要先创建实体类和Mapper,这里以一个用户管理系统为例,创建一个User实体类和对应的UserMapper接口:
@Data
public class User {
private Long id;
private String name;
private Integer age;
private String email;
private Long managerId;
private LocalDateTime createTime;
}
public interface UserMapper extends BaseMapper<User> {
}
其中,User实体类中的属性对应数据库中的列名,UserMapper继承自Mybatis-Plus的BaseMapper接口,已经提供了基本的增删改查方法。
自定义Mybatis-Plus查询方法
Mybatis-Plus提供了一些内置的查询方法,例如selectById()
、selectOne()
、selectList()
等,但有时候我们需要自定义一些查询方法,这时候可以使用Mybatis-Plus的查询构造器来实现。
简单查询
通过查询构造器可以实现复杂的条件查询,例如按照姓名、年龄查询用户信息:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> getUserList(String name, Integer age) {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
// 查询条件
queryWrapper.eq("name", name);
queryWrapper.eq("age", age);
return userMapper.selectList(queryWrapper);
}
}
可以看到,在getUserList()
方法中使用了QueryWrapper
来构建查询条件,然后调用userMapper.selectList()
方法执行查询操作。
分页查询
使用分页查询可以很方便地实现分页功能,Mybatis-Plus已经封装了分页的方法,只需要在查询构造器中添加分页条件即可。
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public Page<User> getUserListPage(Integer pageNum, Integer pageSize) {
Page<User> page = new Page<>(pageNum, pageSize);
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
// 查询条件
queryWrapper.eq("age", 18);
// 执行分页查询
return userMapper.selectPage(page, queryWrapper);
}
}
可以看到,在getUserListPage()
方法中先创建了一个Page
对象,用于存储分页信息,然后在查询构造器中添加查询条件,最后调用userMapper.selectPage()
方法执行分页查询操作。
示例
这里提供两个使用查询构造器实现的查询示例。
示例1:按照姓名、年龄查询用户信息
@GetMapping("/list")
public List<User> getUserList(@RequestParam String name, @RequestParam Integer age) {
return userService.getUserList(name, age);
}
示例2:分页查询年龄为18岁的用户信息
@GetMapping("/page")
public Page<User> getUserListPage(@RequestParam Integer pageNum, @RequestParam Integer pageSize) {
return userService.getUserListPage(pageNum, pageSize);
}
小结
通过上述示例,我们可以发现使用Mybatis-Plus的查询构造器可以很方便地实现复杂的条件查询和分页查询,大大简化了开发的复杂度。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:spring boot 使用Mybatis-plus查询方法解析 - Python技术站