方法太多了.
成都做網(wǎng)站、網(wǎng)站制作介紹好的網(wǎng)站是理念、設(shè)計和技術(shù)的結(jié)合。創(chuàng)新互聯(lián)擁有的網(wǎng)站設(shè)計理念、多方位的設(shè)計風格、經(jīng)驗豐富的設(shè)計團隊。提供PC端+手機端網(wǎng)站建設(shè),用營銷思維進行網(wǎng)站設(shè)計、采用先進技術(shù)開源代碼、注重用戶體驗與SEO基礎(chǔ),將技術(shù)與創(chuàng)意整合到網(wǎng)站之中,以契合客戶的方式做到創(chuàng)意性的視覺化效果。
如果是jdbc的話
分兩方面:1數(shù)據(jù)庫分頁
2代碼分頁
如果是框架持久層的話
一般持久層的查詢對象都要相關(guān)方法設(shè)置
比如設(shè)置一次取多少
從那條記錄開始取
還可以去引入一些外部分頁的jar包
----------------------------------------------
總體思想是這樣的:
首先肯定需要幾個參數(shù):請求的頁數(shù),一頁顯示多少條數(shù)據(jù).數(shù)據(jù)庫真實的條數(shù).
首先查出所有數(shù)據(jù)放入一個集合里面,當然如果數(shù)據(jù)更新次數(shù)少竟然用緩存.
然后根據(jù)數(shù)據(jù)庫總條數(shù)與每頁顯示條數(shù)得到真正的頁數(shù).
根據(jù)一頁條數(shù)和請求的頁可以得到一個查詢的范圍。
在這個范圍內(nèi),把數(shù)據(jù)從剛才那個集合里取出放入一個新的集合.前臺要顯示的就是這個集合的數(shù)據(jù).
至于導航,自然就是頁數(shù)的加減了.
具體代碼,有興趣發(fā)郵件我,我可以給你幾個例子的做法.kyoxue@126.com
面試問題就比較好回答了:
我認為可以概括為兩種:
第一種:真分頁,也就是數(shù)據(jù)庫分頁,需要多少數(shù)據(jù)取多少數(shù)據(jù),適合數(shù)據(jù)量比較大的情況下使用.
第二種:假分頁,把所有數(shù)據(jù)都取出來,然后在頁面上進行分頁.
大致就是這樣子,當然這只是粗淺的說法.
下面給出Struts + Hibernate結(jié)合寫出分頁的DEMO:
/**
* 根據(jù)最大頁數(shù)、開始記錄數(shù)返回對應(yīng)記錄集
* @param pageSize 最大頁數(shù)
* @param page 開始記錄數(shù)
* @return
* @throws Exception
*/
public List getRSofPage(int pageSize,int page) throws Exception {
List retList = new ArrayList();
Session sess = null;
try {
sess = HibernateUtil.currentSession();
Transaction tx = sess.beginTransaction();
Query q = sess
.createQuery( "from Channel where ParentId is not 0 order by ParentId ,ChannelId ");