springboot+mybatisplus 多表分页模糊查询
时间: 2023-08-31 08:12:36 浏览: 133
springboot+mybatisplus+mysql 多数据源
在使用SpringBoot和MybatisPlus进行多表分页模糊查询时,需要先配置好MybatisPlus的分页插件,然后使用MybatisPlus的Wrapper对象进行多表查询,并且使用Page对象进行分页。
以下是一个示例代码,假设我们有两个实体类:User和Order,其中User有一个关联字段orderId。
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public Page<User> getUserList(String keyword, Page<User> page) {
QueryWrapper<User> userWrapper = new QueryWrapper<>();
userWrapper.like("user_name", keyword).or().like("user_email", keyword); // 模糊查询用户名称和邮箱
QueryWrapper<Order> orderWrapper = new QueryWrapper<>();
orderWrapper.like("order_no", keyword); // 模糊查询订单号
userWrapper.inSql("order_id", SqlHelper.getSqlParser().select("id").from(Order.class).where(orderWrapper).getSql()); // 使用子查询查询关联的订单信息
return userMapper.selectPage(page, userWrapper);
}
}
```
在上面的示例代码中,我们首先使用MybatisPlus的QueryWrapper对象进行模糊查询,然后使用inSql方法将查询到的订单id作为子查询的参数,查询关联的订单信息。最后,我们使用MybatisPlus的selectPage方法进行分页查询。
需要注意的是,在使用MybatisPlus的分页插件时,我们需要在配置文件中添加以下配置:
```yaml
mybatis-plus:
page:
helper-dialect: mysql
reasonable: true
```
其中,helper-dialect表示数据库方言,reasonable表示是否启用合理化分页。
阅读全文