ibatis框架下oracle转mysql的分页设置.

ibatis框架下oracle转mysql的分页设置.

oracle:
<select id="queryPageBySearch" resultMap="FullResultMap"
parameterClass="java.util.HashMap">//调用方法时使用的id,返回的结果类型,传入的参数类型
<![CDATA[select * from (select newtab_.*,rownum idx_ from (]]>
SELECT * FROM USERS
<dynamic prepend="WHERE">
<isNotEmpty prepend="AND" property="id">
ID = #id#
</isNotEmpty>
</dynamic>
<![CDATA[) newtab_ where rownum <= #lastRows# ) where idx_ >#offset#]]>
ORDER BY id ASC
</select>

mysql:
<select id="queryPageBySearch" resultMap="FullResultMap"
parameterClass="java.util.HashMap">
SELECT * FROM users
ORDER BY id ASC
limit #offset#,#pagesize#
</select>
在一开始转mysql不小心将limit后面的offset和lastRows两个值弄反了,写成了limit #lastRows#,#offset#结果lastRows值大于数据库表里的记录条数(我的记录有5条,而lastRows值为8),导致返回的结果为空,然后改成limit #lastRows#,#pagesize#,结果还是一样,因为表示取的数据是从第8条到第pagesize条,所以不可能取到数据,最后断点测试才发现这个错误原因,于是把两个值的顺序反下即可,limit #offset#,#pagesize#。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。