Java實現(xiàn)分頁顯示

1、創(chuàng)建一個 Java Web 項目砂代,添加 mysql 連接數(shù)據(jù)庫的 jar 包蹋订,連接數(shù)據(jù)庫,查詢數(shù)據(jù)刻伊。

2露戒、創(chuàng)建一個 Dao 類,用戶操作數(shù)據(jù)庫數(shù)據(jù)捶箱。實現(xiàn)分頁的 sql 語句為:

select * from user order by id desc limit (curPage-1)*pageSize智什,pageSize

pageSize:每頁顯示的數(shù)據(jù)條數(shù)

curPage:當前顯示的頁數(shù)

limit 后面跟隨兩個參數(shù),中間用逗號隔開丁屎,前一個參數(shù)是偏移量荠锭,即每頁第一條記錄數(shù),第二個參數(shù)是每頁顯示的記錄條數(shù)晨川。

Dao 類內(nèi)容如下:

public class UserDao {

private Connection conn = null;

private PreparedStatement ps = null;

private Statement stmt = null;

private ResultSet rs = null;

public List getUsers(int pageSize,int curPage) {

List user=new ArrayList();

String sql = "select * from user order by id desc limit ?,?";

try {

ps = new GetConn().getConn().prepareStatement(sql);

ps.setInt(1, (curPage-1)*pageSize);

ps.setInt(2, pageSize);

rs = ps.executeQuery();

while(rs.next()){

//需要在 User 類中证九,設置一個帶有參數(shù)的構造函數(shù)

user.add(new User(rs.getInt(1),rs.getString(2),rs.getInt(3)));

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

System.out.println(sql);

}

return user;

}

//查詢表中總的記錄條數(shù)

public int count(){

String sql = "select count(*) from user where 1=1";

try {

//獲取數(shù)據(jù)庫連接删豺,執(zhí)行查詢語句

ps = new GetConn().getConn().prepareStatement(sql);

} catch (SQLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

int num = 0;

try {

rs = ps.executeQuery();

if(rs.next()){

num = rs.getInt(1);

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return num;

}

}

3、創(chuàng)建一個 servlet 愧怜,用于處理分頁顯示:

public showUser() {

super();

}

public void destroy() {

super.destroy();

}

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

this.doPost(request, response);

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

int pageSize = 3; ? ? ? ? ? //每頁顯示記錄條數(shù)

String pageIndex = request.getParameter("curPage"); ? ? ? ? ? ? //獲取當前頁數(shù)

int curPage = pageIndex==null?1:Integer.valueOf(pageIndex); ??

//如果當前頁數(shù)為空呀页,則賦值為1,不為空叫搁,則轉化為整數(shù)

int totalUser = userDao.count(); ? ? ? ? ?//總的記錄條數(shù)

System.out.println(totalUser);

int totalPage = totalUser%pageSize==0?totalUser/pageSize:totalUser/pageSize+1;

//計算總的頁數(shù)

List user = userDao.getUsers(pageSize,curPage);

//進行分頁查詢

request.setAttribute("curPage", curPage);

request.setAttribute("totalPage", totalPage);

request.setAttribute("user", user);

request.getRequestDispatcher("MyJsp.jsp").forward(request, response);

}

private UserDao userDao = null;

public void init() throws ServletException {

// Put your code here

userDao = new UserDao();

}

4赔桌、在 index.jsp 頁面上設置一個連接,指向 servlet 渴逻。由 servlet 處理后疾党,轉向 MyJsp.jsp 頁面,進行分頁顯示惨奕。

5雪位、在 MyJsp.jsp 頁面的頭元素中插入 Java 代碼,獲取 servlet 傳入的參數(shù)梨撞,當前頁數(shù)和總的頁數(shù)以及所有的記錄信息雹洗。

<%

int curPage = 0;

int totalPage = 0;

List users = (List)request.getAttribute("user");

if(request.getAttribute("curPage") != null){

curPage = (Integer)request.getAttribute("curPage");

totalPage = (Integer)request.getAttribute("totalPage");

}

%>

然后在頁面的 body 元素中分頁顯示:

設置表頭信息,同時對集合元素進行遍歷卧波,獲得對應數(shù)據(jù)时肿。


設置頁碼信息,跳轉到相應界面港粱。


6螃成、運行程序,查看效果查坪,如圖:


最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末寸宏,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子偿曙,更是在濱河造成了極大的恐慌氮凝,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件望忆,死亡現(xiàn)場離奇詭異罩阵,居然都是意外死亡,警方通過查閱死者的電腦和手機启摄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門永脓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鞋仍,你說我怎么就攤上這事〗劣酰” “怎么了威创?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵落午,是天一觀的道長。 經(jīng)常有香客問我肚豺,道長溃斋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任吸申,我火速辦了婚禮梗劫,結果婚禮上,老公的妹妹穿的比我還像新娘截碴。我一直安慰自己梳侨,他們只是感情好,可當我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布日丹。 她就那樣靜靜地躺著走哺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪哲虾。 梳的紋絲不亂的頭發(fā)上丙躏,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天,我揣著相機與錄音束凑,去河邊找鬼晒旅。 笑死,一個胖子當著我的面吹牛汪诉,可吹牛的內(nèi)容都是我干的废恋。 我是一名探鬼主播,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼摩瞎,長吁一口氣:“原來是場噩夢啊……” “哼拴签!你這毒婦竟也來了?” 一聲冷哼從身側響起旗们,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤蚓哩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后上渴,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體岸梨,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年稠氮,在試婚紗的時候發(fā)現(xiàn)自己被綠了曹阔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡隔披,死狀恐怖赃份,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤抓韩,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布纠永,位于F島的核電站,受9級特大地震影響谒拴,放射性物質發(fā)生泄漏尝江。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一英上、第九天 我趴在偏房一處隱蔽的房頂上張望炭序。 院中可真熱鬧,春花似錦苍日、人聲如沸惭聂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽彼妻。三九已至,卻和暖如春豆茫,著一層夾襖步出監(jiān)牢的瞬間侨歉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工揩魂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留幽邓,地道東北人。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓火脉,卻偏偏與公主長得像牵舵,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子倦挂,可洞房花燭夜當晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容

  • (以下使用ssm+jsp實現(xiàn)顯示所有電影為例子) 1.封裝一個PageBean類 package com.enti...
    何文杰啊閱讀 3,796評論 0 0
  • 1. Java基礎部分 基礎部分的順序:基本語法畸颅,類相關的語法,內(nèi)部類的語法方援,繼承相關的語法没炒,異常的語法,線程的語...
    子非魚_t_閱讀 31,598評論 18 399
  • 一. Java基礎部分.................................................
    wy_sure閱讀 3,805評論 0 11
  • 一套完整的登陸注冊業(yè)務邏輯 準備部分基礎工具類Basepackage com.jericho.tools;impo...
    JerichoPH閱讀 2,438評論 0 9
  • 手機里這幾張照片犯戏,放了很久送火,一直舍不得刪,那是存在心底的梅里往事先匪。 曾經(jīng)只是見到過梅里雪山的照片种吸,便久...
    何來何往16閱讀 505評論 1 0