mybatis-plus-join多条件查询
时间: 2023-10-11 18:14:11 浏览: 170
在 MyBatis-Plus 中进行多条件查询可以使用 `Wrapper` 类来构建查询条件。而在进行多表关联查询时,可以使用 `Joiner` 类来构建 JOIN 语句。
下面是一个示例,演示如何使用 MyBatis-Plus 进行多条件查询和多表关联查询:
```java
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public Page<User> queryUsersByConditions(String name, Integer age) {
// 构建查询条件
QueryWrapper<User> queryWrapper = Wrappers.query();
queryWrapper.like("name", name);
queryWrapper.eq("age", age);
// 构建分页对象
Page<User> page = new Page<>(1, 10); // 查询第一页,每页10条记录
// 执行查询
return userMapper.selectPage(page, queryWrapper);
}
public Page<User> queryUsersWithJoin(String roleName) {
QueryWrapper<User> queryWrapper = Wrappers.query();
queryWrapper.apply("role r, user u");
queryWrapper.eq("u.role_id", "r.id");
queryWrapper.eq("r.name", roleName);
Page<User> page = new Page<>(1, 10);
return userMapper.selectPage(page, queryWrapper);
}
}
```
在上述示例中,`queryUsersByConditions` 方法演示了如何使用 `QueryWrapper` 来构建多条件查询。其中使用了 `like` 方法来模糊查询 `name` 字段,使用了 `eq` 方法来精确查询 `age` 字段。
`queryUsersWithJoin` 方法演示了如何使用 MyBatis-Plus 进行多表关联查询。在 `QueryWrapper` 中使用了 `apply` 方法来拼接 JOIN 语句,并使用了 `eq` 方法来设置关联条件。
你可以根据自己的需求进行相应的调整和扩展。希望对你有所帮助!如有更多问题,请随时提问。
阅读全文