MyBatis 实现 Oracle 分页

xiaoxiao2021-02-28  23

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 ) 这两句就能自动获取分页的数据

 

 

转载请注明原文地址: https://www.6miu.com/read-2630536.html

最新回复(0)