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
頂
踩
分享到:

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那個語句的性能怎麼樣?