springboot+mybatisplus 模糊多表分页查询
时间: 2023-09-06 19:07:17 浏览: 113
你可以使用 Mybatis-Plus 提供的 QueryWrapper 来构造模糊查询条件,使用 Page 类进行分页查询。具体步骤如下:
1. 定义实体类和 Mapper 接口,使用 Mybatis-Plus 提供的注解来简化 SQL 语句的编写。
```java
// 实体类
@Data
public class User {
private Long id;
private String name;
private Integer age;
}
// Mapper 接口
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
```
2. 在 Service 层中编写模糊查询的方法,使用 QueryWrapper 进行条件构造,使用 Page 进行分页查询。
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public Page<User> findUsers(String name, Integer age, Integer pageNum, Integer pageSize) {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
if (StringUtils.isNotBlank(name)) {
queryWrapper.like("name", name);
}
if (age != null) {
queryWrapper.eq("age", age);
}
Page<User> page = new Page<>(pageNum, pageSize);
return userMapper.selectPage(page, queryWrapper);
}
}
```
3. 在 Controller 层中接收请求参数,调用 Service 层的方法进行查询,并将结果返回给前端。
```java
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserService userService;
@GetMapping
public Page<User> findUsers(@RequestParam(required = false) String name,
@RequestParam(required = false) Integer age,
@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize) {
return userService.findUsers(name, age, pageNum, pageSize);
}
}
```
这样就可以实现模糊多表分页查询了。需要注意的是,如果要查询多表的数据,需要在 Mapper 接口中自定义 SQL 语句,在 Service 层中调用这些自定义的方法。
阅读全文