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
踩
分享到:
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那个语句的性能怎么样?