mybatis-plus实现多条件+分页+多表联合查询 详细解析
时间: 2023-10-03 12:01:47 浏览: 179
Mybatis-plus是一个基于Mybatis的增强工具,提供了很多实用的功能,其中包括多条件分页和多表联合查询。下面分别介绍一下这两个功能的实现方法。
多条件分页实现:
1. 在mapper.xml文件中定义查询语句,使用limit关键字实现分页功能。
```
<select id="selectByCondition" resultMap="BaseResultMap">
select * from table_name
<where>
<if test="param1 != null">
and column1 = #{param1}
</if>
<if test="param2 != null">
and column2 = #{param2}
</if>
</where>
order by column3 desc
limit #{offset}, #{pageSize}
</select>
```
2. 在dao层中定义查询方法,使用Page对象传递分页参数,并调用mapper中定义的查询语句。
```
public Page<TableEntity> selectByCondition(Page<TableEntity> page, String param1, String param2) {
page.setRecords(baseMapper.selectByCondition(page, param1, param2));
return page;
}
```
3. 在service层中调用dao中定义的查询方法,获取分页结果。
```
public Page<TableEntity> selectByCondition(int pageNum, int pageSize, String param1, String param2) {
Page<TableEntity> page = new Page<>(pageNum, pageSize);
return dao.selectByCondition(page, param1, param2);
}
```
多表联合查询实现:
1. 在mapper.xml文件中定义关联查询语句,使用join关键字实现多表关联。
```
<select id="selectByJoin" resultMap="BaseResultMap">
select t1.*, t2.column1 as column2 from table1 t1
join table2 t2 on t1.id = t2.id
where t1.column1 = #{param1} and t2.column2 = #{param2}
</select>
```
2. 在dao层中定义查询方法,调用mapper中定义的关联查询语句。
```
public List<Map<String, Object>> selectByJoin(String param1, String param2) {
return baseMapper.selectByJoin(param1, param2);
}
```
3. 在service层中调用dao中定义的查询方法,获取查询结果。
```
public List<Map<String, Object>> selectByJoin(String param1, String param2) {
return dao.selectByJoin(param1, param2);
}
```
以上就是Mybatis-plus实现多条件分页和多表联合查询的详细解析。希望能够帮助到你。
阅读全文