消失的空間
星期日, 九月 25th, 2005(more…)

DVD區整理完成
上一篇中提到像SQL Server、DB2 AS400只能做到Top n,但還是可以透過一些小技巧來變相地達成類似分頁的效果,而不用一股腦地把資料全部抓出來。
以會員列表來說,如果是一頁要顯示20筆資料,按照姓名排序,則可以透過如下的語法:
[source:sql]
SELECT TOP 20 ID, CNAME, EMAIL
FROM MEMBERS
WHERE CNAME > ‘Yanni’
ORDER BY CNAME
[/source]
其中的 “Yanni” 這個值則是目前顯示頁中最後一筆資料姓名欄位的值,在按下「下一頁」的同時當成參數傳過去,這樣就可以選出之後的20筆資料了。
不過這個方法就沒辦法實作出「到n頁」的功能了 ![]()
為了在程式中加上一個基本的分頁功能,找了些資料後發現許多的實作方式都是將所有付合條件的資料select出來後,再於程式中計算顯示。但這麼一來,資料量一大時,勢必會浪費許多不必要的記憶體空間與網路頻寬,但如果資料庫本身有支援offset的話,其實從資料庫層來實作是比較好的方法。剛好Masu提醒了我,其實Hibernate裡就有實作出分頁的功能,所以我就trace了一下Hibernate的source code,整理出常用資料庫實作分頁的語法。
(more…)
看看上一篇發表的日期,我的Blog都快從日誌變成”季誌”了 XD !
不過還是加了點新東西,除了「最近閱讀、電影和音樂」外,也加了個用AJAX實作的留言版,還滿有趣的。
AJAX這東西用在很多地方真得很好用,不過最近沒時間試,等小豬的說清楚講明白好了~ ![]()