共计 1203 个字符,预计需要花费 4 分钟才能阅读完成。
使用MybatisPlus对于数据库中的表,只需要建立相应的实体类就可以很方便的进行增删查改。
问题1:如果需要进行分页查询,需要怎么操作?
// 创建分页辅助类
Page page = new Page(current, sieze);
...
// 条件构造器构造查询条件
QueryWrapper query = new QueryWrapper();
...
Page<Entity> result = this.page(page, query);
这样的操作仅能对单表进行查询,对于联表查询,这样是行不通的。此时可以做相应的修改即可。
问题2:联合查询的分页查询如何进行?
方法一
假设联合查询的条件为对用户名进行模糊匹配。
1)Mapper文件添加方法:
IPage<Entity> findByPage(IPage<Entity> page, @Param("ew") Wrapper wrapper);
Entity 为查询结果的映射类。
2)Mapper.xml 实现分页方法:
<select id="findByPage" resultMap="Entity">
SELECT * FROM user
LEFT JOIN student
ON user.id = student.id
${ew.customSqlSegment}
</select>
${ew.customSqlSegment} 即代表查询条件。
3)Service 中调用方法:
// 创建分页辅助类
Page page = new Page(current, sieze);
...
// 条件构造器构造查询条件
QueryWrapper query = new QueryWrapper();
...
Page<Entity> result = this.page(page, query);
最后,即可像单表查询操作一样进行分页查询。
当然,如果不想使用条件构造器,也可以使用另外一种方式。
方法二
1)Mapper文件添加方法:
IPage<Entity> findByPage(IPage<Entity> page, @Param("userName") String userName);
Entity 为查询结果的映射类。
2)Mapper.xml 实现分页方法:
<select id="findByPage" resultMap="Entity">
SELECT * FROM user
LEFT JOIN student
ON user.id = student.id
<where>
<if test="userName != null">
user_name LIKE concat('%', #{userName}, '%')
</if>
</where>
</select>
3)Service 中调用方法:
// 创建分页辅助类
Page page = new Page(current, sieze);
...
Page<Entity> result = this.page(page, userName);
但是这种方式就没那么像MybatisPlus。
提醒:本文发布于623天前,文中所关联的信息可能已发生改变,请知悉!
AD:【腾讯云服务器大降价】2核4G 222元/3年 1核2G 38元/年
正文完