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#。

时间: 2024-10-06 04:08:10

ibatis框架下oracle转mysql的分页设置.的相关文章

oracle sqlserver mysql数据库分页

1.Mysql的limit用法 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能. Sql代码   SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数.LIMIT 接受一个或两个数字参数.参数必须是一个整数常量.如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数

mysql时间类型在iBATIS框架下的问题(原创哦)

写代码时遇到一个没有搜到的错误,简单记录一下这个dubbo框架中出现的问题. 启动dubbo一个服务端的bat时报错如下 这是sql文所在的xml文件解析报错.经调查发现,db中的类型为timestamp,而entity中定义的是String,javaType和jdbcType的类型不匹配而导致解析时报出"java.lang.IllegalStateException:No typehandler found for property XXX"的错误. 解决方案如下: 1.修改db表结

oracle和mysql的分页(转)

如果我们是通过JDBC的方式访问数据库,那么就有必要根据数据库类型采取不同的SQL分页语句,对于MySql数据库,我们可以采用limit语句进行分页,对于Oracle数据库,我们可以采用rownum的方式进行分页. (1)MySql的Limit m,n语句 Limit后的两个参数中,参数m是起始下标,它从0开始:参数n是返回的记录数.我们需要分页的话指定这两个值即可 (2)Oracle数据库的rownum 在Oracle数据库中,分页方式没有MySql这样简单,它需要依靠rownum来实现.Ro

CI框架下PHP读取mySQL数据库

1.在application/config/database.php 中填写好数据库的相关内容 包括hostname username password database 等 2.新建一个文件 application/controllers/GuanliCon.php 代码如下 <?php class GuanliCon extends CI_Controller{ public function __construct() {      parent::__construct();      

Oracle与Mysql主键、索引及分页的区别小结

Oracle与Mysql主键.索引及分页的区别,学习oracle的朋友可以参考下 区别: 1.主键,Oracle不可以实现自增,mysql可以实现自增. oracle新建序列,SEQ_USER_Id.nextval 2.索引: mysql索引从0开始,Oracle从1开始. 3.分页, mysql: select * from user order by desc limit n ,m. 表示,从第n条数据开始查找,一共查找m条数据. Oracle:select * from user sele

mybatis中的oracle和mysql分页

这段时间一直在用mybatis+spring+springMVC的框架,总结点东西吧. 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&quo

MyBatis分页插件:比PageHelper都要简单,使用很灵活,目前支持Oracle和MySQL

1.概述: 经过努力写了个分页插件,目前支持MySQL和Oracle.它的使用应该是目前为止最简单的,对于PageHelper据原作者描述使用了ThreadLocal等技术,避免多线程的不一致,PageHelper实现较为复杂,其次也有其定义的startPage,endPage这样的开关代码,造成代码侵入,而没有屏蔽PageHelper导致代码污染. 我的插件十分简单易用,代码污染性极小,也无需考虑多线程的问题,反正都是一个事务中处理的,其次使用方法支持四种,十分灵活. 2.插件代码,配置和简易

转Oracle、MySql、SQLServer 数据分页查询

最近简单的对oracle,mysql,sqlserver2005的数据分页查询作了研究,把各自的查询的语句贴出来供大家学习..... (一). mysql的分页查询 mysql的分页查询是最简单的,借助关键字limit即可实现查询,查询语句通式: /* * sql:可以是单表的查询语句,也可以是多表的联合查询语句 * firstIndex:其实的索引 * pageSize:每页显示的记录数 */ select o.* from (sql) o limit firstIndex,pageSize

在Jena框架下基于MySQL数据库实现本体的存取操作

在Jena框架下基于MySQL数据库实现本体的存取操作 转自:http://blog.csdn.net/jtz_mpp/article/details/6224311 最近在做一个基于本体的管理系统.其中对本体的操作部分,我使用的是Jena框架:数据模型是基于本体的语义模型:数据存储则是MySQL 5.5.9版本.由此看来,将本体模型存入数据库和从数据库中取出模型是常用的操作,这里总结一下我学到的方法. 我使用的开发环境是Eclipse3.6,在开发前要将必要的与jena有关的类包加入java