] ibatis 实现 物理级别的 分页 兼容多种数据库(转载)
2012-02-12 22:46
507 查看
[置顶]ibatis实现物理级别的分页兼容多种数据库(转载)
分类:MySql-->
首先说说MySql的分页语句
Sql代码select*fromuserwhere...orderby...limit10,25[sql]
根据以上的语句我们可以对ibator生成后的代码进行修改。
第一修改User_sqlMap.xml
修改前
Xml代码<selectid="ibatorgenerated_selectByExample"resultMap="ibatorgenerated_BaseResultMap"
parameterClass="com.demo.ibatis.beans.UserExample">
selectID,LOGIN_NAME,PASSWORD
fromuser
<isParameterPresent>
<includerefid="user.ibatorgenerated_Example_Where_Clause"/>
<isNotNullproperty="orderByClause">
orderby$orderByClause$
</isNotNull>
</isParameterPresent>
</select>
[xml]
修改后
Xml代码<selectid="ibatorgenerated_selectByExample"resultMap="ibatorgenerated_BaseResultMap"
parameterClass="com.demo.ibatis.beans.UserExample">
selectID,LOGIN_NAME,PASSWORD
fromuser
<isParameterPresent>
<includerefid="user.ibatorgenerated_Example_Where_Clause"/>
<isNotNullproperty="orderByClause">
orderby$orderByClause$
</isNotNull>
[b]<isNotNullproperty="limitClauseStart">
limit
$limitClauseStart$,$limitClauseCount$
</isNotNull>[/b]
</isParameterPresent>
</select>
[xml]
重要的是黑色的字体是添加到原来的xml中的。接下来修改UserExample.java
在该类中添加两个字段和相应的getter/setter方法
Java代码protectedStringlimitClauseStart;//起始参数
protectedStringlimitClauseCount;//数量参数
[java]
接下来就可以通过Dao调用selectByExample()方法测试,好的以上就是MySql的分页。SqlServer的分页比较难了,因为SqlServer中没有limit的关键字。
看看SqlServer的分页语句,那当然SqlServer人分布方法有很多种。这里我采用其中的一种。
语句如下:
Sql代码SELECTTOP页大小*
FROMTestTable
WHERE(IDNOTIN
(SELECTTOP页大小*页数id
FROM表
ORDERBYid))
ORDERBYID
[sql]
接下来和上面的MySql一样也进行修改
修改xml
Xml代码<selectid="ibatorgenerated_selectByExample"resultMap="ibatorgenerated_BaseResultMap"
parameterClass="com.demo.ibatis.beans.UserExample">
[b]<isNotNullproperty="limitClauseStart">
SELETETOP$limitClauseCount$*FROMuserwhere(IDNOTIN
(SELECTTOP$limitClauseStart$ID
</isNotNull>[/b]
<isNullproperty="limitClauseStart">
SELETE*
</isNull>
FROMuser
fromuser
<isParameterPresent>
<includerefid="user.ibatorgenerated_Example_Where_Clause"/>
<isNotNullproperty="orderByClause">
orderby$orderByClause$
[b]<isNotNullproperty="limitClauseStart">
))orderby$orderByClause$
</isNotNull>[/b]
</isNotNull>
</isParameterPresent>
</select>[xml]
接下来是ORacle的,和上面都是差不多的这里不多说。
语法:
select*from(selectrownumtid,user.*FROM(select*fromuserwhereid>1orderbyIDdesc)userwherewhererownum<35)wheretid>10;
修改Xml,
Xml代码<selectid="ibatorgenerated_selectByExample"resultMap="ibatorgenerated_BaseResultMap"
parameterClass="com.demo.ibatis.beans.UserExample">
[b]<isNotNullproperty="limitClauseStart">
select*from(selectrownumtid,user.*FROM(
</isNotNull>[/b]
select*fromuser
<isParameterPresent>
<includerefid="user.ibatorgenerated_Example_Where_Clause"/>
<isNotNullproperty="orderByClause">
orderby$orderByClause$
</isNotNull>
[b]<isNotNullproperty="limitClauseStart">
<![[CDATA)userwherewhererownum<$limitClauseCount$+$limitClauseStart$+1)wheretid>$limitClauseStart$;]]>
</isNotNull>[/b]
</isParameterPresent>
</select>
相关文章推荐
- ibatis 实现 物理级别的 分页 兼容多种数据库(转载)
- ] ibatis 实现 物理级别的 分页 兼容多种数据库(转载)
- ibatis 实现 物理级别的 分页 兼容多种数据库(转载)
- 最好用的兼容多种数据库通用高效的大数据分页功能
- Winform开发框架中实现同时兼容多种数据库类型处理
- mybatis框架下物理分页的实现(整个工程采用的是springmvc、spring、mybatis框架,数据库是mysql数据库)
- Winform开发框架中实现同时兼容多种数据库类型处理
- 修改ibatis源码实现物理分页
- ibatis 分页 实现 (物理分页)
- Mybatis 数据库物理分页插件 PageHelper 前端实现
- 实现对ibatis原生SQL的拦截改造-可以实现物理分页等(咋个办呢 zgbn)
- [C#]Winform开发框架中实现同时兼容多种数据库类型处理
- IBatis物理分页实现
- 大恶人吉日嘎拉之走火入魔闭门造车之.NET 多种数据库兼容的实现方法,仅写一套程序在多种数据库上执行例子程序
- 简单实现ibatis的物理分页
- 大恶人吉日嘎拉之走火入魔闭门造车之.NET 多种数据库兼容的实现方法,仅写一套程序在多种数据库上执行例子程序
- 大恶人吉日嘎拉之走火入魔闭门造车之.NET 多种数据库兼容的实现方法,仅写一套程序在多种数据库上执行例子程序
- 转载--数据库多种方式查找重复记录
- 数据库事务隔离级别和锁的实现方式
- 用AjaxPro实现无刷新翻页效果及数据库分页技术介绍