mybatis-plus实现多条件+分页+多表联合查询
时间: 2023-09-30 22:12:38 浏览: 47
mybatis-plus可以通过Wrapper类实现多条件查询,通过Page类实现分页查询,通过自定义sql语句实现多表联合查询。以下是一个简单的例子:
```java
// 多条件查询和分页
Page<User> page = new Page<>(1, 10);
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("status", 1)
.like("name", "张")
.ge("age", 18)
.orderByDesc("create_time");
IPage<User> userPage = userService.page(page, wrapper);
// 多表联合查询
List<UserVO> userVOList = userMapper.selectUserVOList(wrapper);
```
其中UserVO是一个自定义的VO类,用于封装多表联合查询的结果。在mapper中定义sql语句,例如:
```xml
<select id="selectUserVOList" resultMap="userVOResultMap">
select u.*, d.dept_name
from t_user u
left join t_dept d on u.dept_id = d.id
<where>
<if test="status != null">
and u.status = #{status}
</if>
<if test="name != null">
and u.name like concat('%', #{name}, '%')
</if>
<if test="age != null">
and u.age >= #{age}
</if>
</where>
order by u.create_time desc
</select>
```
其中resultMap用于定义结果集的映射关系,这里不再赘述。