mybatis分页技术的实现
MyBatis 分页技术的实现一般有两种方式:
- 使用物理分页
物理分页是通过 SQL 语句中的 LIMIT 关键字来实现的,它的优点是效率高,缺点是需要手动计算分页信息。
示例代码:
<!-- 查询记录总数 -->
<select id="getTotalCount" resultType="java.lang.Integer">
SELECT COUNT(*) FROM user
</select>
<!-- 分页查询 -->
<select id="getUserList" resultType="User">
SELECT * FROM user
LIMIT #{offset}, #{limit}
</select>
在 Java 代码中,需要计算出分页的偏移量和限制数量:
int totalCount = sqlSession.selectOne("getTotalCount");
int offset = (pageNum - 1) * pageSize;
int limit = pageSize;
List<User> userList = sqlSession.selectList("getUserList", new RowBounds(offset, limit));
- 使用插件实现逻辑分页
逻辑分页是通过 MyBatis 插件来实现的,它的优点是可以自动计算分页信息,缺点是效率相对较低。
示例代码:
<!-- 分页查询 -->
<select id="getUserList" resultType="User">
SELECT * FROM user
</select>
在 Java 代码中,需要在执行查询之前设置分页信息:
PageHelper.startPage(pageNum, pageSize);
List<User> userList = sqlSession.selectList("getUserList");
``
原文地址: http://www.cveoy.top/t/topic/htj2 著作权归作者所有。请勿转载和采集!