收藏 ibatis hibernate 分頁

2021-08-29 05:45:55 字數 1120 閱讀 1037

[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 ...