MyBatis 实现 Oracle 分页
< 是 <
<= 是 <=
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dao.CarMapper">
<select id="selectByPage" resultType="car">
select * from (
select t1.*, rownum rownu from CAR t1
where rownum <= #{ param1 } * #{ param2 }
) t2
where t2.rownu > ( #{ param1 } - 1 ) * #{ param2 }
</select>
</mapper>
---------------------------------
代码生成 sql 就这样:
// 将 sql 合成 分页的 oracle sql
StringBuffer pageSql = new StringBuffer();
pageSql.append( "select * from ( select rowTemp.*, rownum rownumTemp from ( " );
pageSql.append( sql );
pageSql.append( " ) rowTemp ) where rownumTemp > "
+ startRow + " and rownumTemp <= " + ( startRow + pageSize ) );
--------------------------------------
如果是用 hibernate 或 jpa 操作 oracle 数据库,就不用自己去拼写这些分页的 sql,
直接用 setFirstResult( int offset ) 和 setMaxResults( int limit ) 这两句就能自动获取分页的数据

本文介绍如何使用MyBatis实现在Oracle数据库上的分页查询。通过XML映射文件定义特定的SQL语句来实现分页功能,并提供了一个示例代码,展示了如何构造符合Oracle分页需求的SQL语句。
8296

被折叠的 条评论
为什么被折叠?



