ibatis mysql分页查询语句_Ibatis动态sql实现MySql SqlServer Oracle分页

select * from user where...order by... limit 10,25

根据以上的语句我们可以对ibator生成后的代码进行修改。

第一修改User_sqlMap.xml

修改前

parameterClass="com.demo.ibatis.beans.UserExample">

select ID, LOGIN_NAME, PASSWORD

from user

order by $orderByClause$

修改后

parameterClass="com.demo.ibatis.beans.UserExample">

select ID, LOGIN_NAME, PASSWORD

from user

order by $orderByClause$

[b]

limit

$limitClauseStart$,$limitClauseCount$

[/b]

重要的是黑色的字体是添加到原来的xml中的。接下来修改UserExample.java

在该类中添加两个字段和相应的getter/setter方法

protected String limitClauseStart;//起始参数

protected String limitClauseCount;//数量参数

接下来就可以通过Dao调用selectByExample()方法测试,好的以上就是MySql的分页。SqlServer的分页比较难了,因为 SqlServer中没有limit的关键字。

看看SqlServer的分页语句,那当然 SqlServer人分布方法有很多种。这里我采用其中的一种。

语句如下:

SELECT TOP 页大小 *

FROM TestTable

WHERE (ID >=

(select max(id) from (SELECT TOP 页大小*页数 id

FROM 表

ORDER BY id) as t))

ORDER BY ID

接下来和上面的MySql一样也进行修改

修改xml

parameterClass="com.demo.ibatis.beans.UserExample">

[b]

SELETE TOP $limitClauseCount$ * FROM user where (ID NOT IN

(SELECT TOP $limitClauseStart$ ID

[/b]

SELETE *

FROM user

from user

order by $orderByClause$

[b]

))order by $orderByClause$

[/b]

接下来是ORacle的,和上面都是差不多的这里不多说。

语法:

select* from(select rownum tid,user.* FROM (select * from user where id>1 order by ID desc)user where where rownum<35) where tid>10;

修改Xml,

parameterClass="com.demo.ibatis.beans.UserExample">

[b]

select* from(select rownum tid,user.* FROM (

[/b]

select * from user

order by $orderByClause$

[b]

$limitClauseStart$;]]>

[/b]

好的以上就是这次的代码,如果有错的请帮我指点一下...

5

0

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2010-01-08 23:41

浏览 7934

评论

5 楼

xxy_tidy_sky

2011-08-03

where条件有问题的,只在not in嵌套里面有where ,外面没有where条件怎么行呢

4 楼

领悟人生

2011-06-16

zsj614 写道

你的sqlserver的分页语句有问题,where 里的条件怎么只有里面的那个有。分出来肯定有问题的

呵呵,这个不会有问题。这个分页语句是我一直使用的。

如果有什么问题请指教一下。

3 楼

zsj614

2011-04-29

你的sqlserver的分页语句有问题,where 里的条件怎么只有里面的那个有。分出来肯定有问题的

2 楼

领悟人生

2010-10-01

当当猫 写道

不错好文章。不知道MSSQL那个语句的性能怎么样?

你说的是Mysql的分页语句吗?

1 楼

当当猫

2010-09-21

不错好文章。不知道MSSQL那个语句的性能怎么样?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值