MyBatis分页查询:使用LIMIT和OFFSET实现动态条件查询
MyBatis分页查询:使用LIMIT和OFFSET实现动态条件查询
在MyBatis中,可以使用mapper.java和mapper.xml实现分页查询。本篇文章将介绍如何使用LIMIT和OFFSET语句以及动态条件查询来实现高效灵活的数据获取。
1. mapper.java代码示例
List<User> list = queryByPage(Page<User> page, @Param("vo") User user);
2. mapper.xml代码示例
<select id="queryByPage" parameterType="com.example.Page" resultMap="com.example.UserResultMap">
SELECT * FROM user
WHERE 1=1
<if test="vo != null and vo.name != null">
AND name = #{vo.name}
</if>
<if test="vo != null and vo.age != null">
AND age = #{vo.age}
</if>
ORDER BY id DESC
LIMIT #{pageSize} OFFSET #{offset}
</select>
3. 代码解析
Page类包含pageSize和offset属性,分别表示每页显示的数据条数和从第几条数据开始查询。@Param("vo") User user表示User对象作为参数,用于传递查询条件。IF语句用于判断查询条件是否为空,如果不为空则将查询条件拼接到SQL语句中。ORDER BY id DESC用于按照id降序排列,保证查询结果的顺序一致。LIMIT #{pageSize} OFFSET #{offset}用于限制查询结果的范围。
总结
使用LIMIT和OFFSET语句以及动态条件查询可以实现灵活高效的MyBatis分页查询。通过Page类传递分页参数,并通过动态条件查询过滤数据,可以满足各种不同的分页需求。
原文地址: https://www.cveoy.top/t/topic/onpE 著作权归作者所有。请勿转载和采集!