[quote]使用ibatis,hibernate等,分頁已經內部實現了,設定一下就可以了
1)hibernate
query q = session.createquery("from cat as c");
q.setfirstresult(50);
q.setmaxresults(100);
list l = q.list();
那麼hibernate底層如何實現分頁的呢?實際上hibernate的查詢定義在net.sf.hibernate.loader.loader這個類裡面,仔細閱讀該類**,就可以把問題徹底搞清楚。
hibernate2.0.3的loader源**第480行以下:
if (uselimit) sql = dialect.getlimitstring(sql);
preparedstatement st = session.getbatcher().preparequerystatement(sql, scrollable);
如果相應的資料庫定義了限定查詢記錄的sql語句,那麼直接使用特定資料庫的sql語句。
然後來看net.sf.hibernate.dialect.mysqldialect:
public boolean supportslimit()
public string getlimitstring(string sql)
這是mysql的專用分頁語句,再來看net.sf.hibernate.dialect.oracle9dialect:
public boolean supportslimit()
public string getlimitstring(string sql)
oracle採用巢狀3層的查詢語句結合rownum來實現分頁,這在oracle上是最快的方式,如果只是一層或者兩層的查詢語句的rownum不能支援order by。
2)ibatis
paginatedlist list =sqlmap.queryforpaginatedlist ("getproductlist」, null, 10);
list.nextpage();
list.previouspage();
[/quote]
Mysql商城收藏功能 mysql收藏功能開發
你需要了解join操作 至於主鍵,你可以用user id和article id一起作為復合主鍵,最簡單的作法如下 假定你的使用者id和文章id不變。當然一般是不變的 create table shoucang table user id int 11 article id int 11 create...
1 愛收藏 雲端收藏夾發布
愛收藏,乙個雲端 收藏夾誕生了!擁有乙個屬於自己的 是每個程式設計師的夢想。我也一樣。總想擁有個人 完全自己設計 自己開發,從零開始,完全按照自己的想法來實現,並且一點點的迭代,長期維護下去。一是作為技術演練的平台,新學到的技術都可以運用上去。二是作為展示自己能力的平台。三也可以作為與其他人交往的平...
debian alien 轉貼收藏
linux下常的見軟體包所指的是tar.gz,tar.bz2,rpm,deb等幾種 alien簡述 alien似乎是debian系統下的乙個安裝工具,檢視它的幫助 fideas zerone alien help usage alien options file file package file ...