JSP实现分页显示

今天实现了一个小小的功能:将数据库里面记录实现分页查询显示出来,代码如下

DB.java


 1 package com.sunjob.db;
 2
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.PreparedStatement;
 6 import java.sql.ResultSet;
 7 import java.sql.SQLException;
 8 import java.sql.Statement;
 9 import java.util.ArrayList;
10 import java.util.List;
11
12 import com.sunjob.pojo.Article;
13
14 public class DB {
15
16     public static Connection getConn(){
17         Connection conn = null;
18         try {
19             Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);
20             conn = DriverManager.getConnection(“jdbc:sqlserver://127.0.0.1:1433;DatabaseName=MyDB”, “sa” , “sasa”);
21         } catch (ClassNotFoundException e) {
22             e.printStackTrace();
23         } catch (SQLException e) {
24             e.printStackTrace();
25         }
26         return conn;
27     }
28
29
30     public static Statement createStmt(Connection conn) {
31         Statement stmt = null;
32         try {
33             stmt = conn.createStatement();
34         } catch (SQLException e) {
35             e.printStackTrace();
36         }
37         return stmt;
38     }
39     public static ResultSet executeQuery(Statement stmt, String sql) {
40         ResultSet rs = null;
41         try {
42             rs = stmt.executeQuery(sql);
43         } catch (SQLException e) {
44             e.printStackTrace();
45         }
46         return rs;
47     }
48     public static void close(Connection conn) {
49         if(conn != null) {
50             try {
51                 conn.close();
52             } catch (SQLException e) {
53                 e.printStackTrace();
54             }
55             conn = null;
56         }
57     }
58
59     public static void close(Statement stmt) {
60         if(stmt != null) {
61             try {
62                 stmt.close();
63             } catch (SQLException e) {
64                 e.printStackTrace();
65             }
66             stmt = null;
67         }
68     }
69
70     public static void close(ResultSet rs) {
71         if(rs != null) {
72             try {
73                 rs.close();
74             } catch (SQLException e) {
75                 e.printStackTrace();
76             }
77             rs = null;
78         }
79     }
80
81 }


Article.java


 1 package com.sunjob.db;
 2
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.PreparedStatement;
 6 import java.sql.ResultSet;
 7 import java.sql.SQLException;
 8 import java.sql.Statement;
 9 import java.util.ArrayList;
10 import java.util.List;
11
12 import com.sunjob.pojo.Article;
13
14 public class DB {
15
16     public static Connection getConn(){
17         Connection conn = null;
18         try {
19             Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);
20             conn = DriverManager.getConnection(“jdbc:sqlserver://127.0.0.1:1433;DatabaseName=MyDB”, “sa” , “sasa”);
21         } catch (ClassNotFoundException e) {
22             e.printStackTrace();
23         } catch (SQLException e) {
24             e.printStackTrace();
25         }
26         return conn;
27     }
28
29
30     public static Statement createStmt(Connection conn) {
31         Statement stmt = null;
32         try {
33             stmt = conn.createStatement();
34         } catch (SQLException e) {
35             e.printStackTrace();
36         }
37         return stmt;
38     }
39     public static ResultSet executeQuery(Statement stmt, String sql) {
40         ResultSet rs = null;
41         try {
42             rs = stmt.executeQuery(sql);
43         } catch (SQLException e) {
44             e.printStackTrace();
45         }
46         return rs;
47     }
48     public static void close(Connection conn) {
49         if(conn != null) {
50             try {
51                 conn.close();
52             } catch (SQLException e) {
53                 e.printStackTrace();
54             }
55             conn = null;
56         }
57     }
58
59     public static void close(Statement stmt) {
60         if(stmt != null) {
61             try {
62                 stmt.close();
63             } catch (SQLException e) {
64                 e.printStackTrace();
65             }
66             stmt = null;
67         }
68     }
69
70     public static void close(ResultSet rs) {
71         if(rs != null) {
72             try {
73                 rs.close();
74             } catch (SQLException e) {
75                 e.printStackTrace();
76             }
77             rs = null;
78         }
79     }
80
81 }


显示页面:index.jsp


 1 <%@ page language=”java” import=”java.util.“ pageEncoding=”GB18030”%>
 2 <%@page import=”java.sql.Connection”%>
 3 <%@page import=”com.sunjob.db.DB”%>
 4 <%@page import=”java.sql.Statement”%>
 5 <%@page import=”java.sql.ResultSet”%>
 6 <%@page import=”com.sunjob.pojo.Article”%>
 7 <%
 8 String path = request.getContextPath();
 9 String basePath = request.getScheme()+”://“+request.getServerName()+”:”+request.getServerPort()+path+”/“;
10 %>
11 <%
12     final int pageSize = 4;//每页显示的数量
13     int pageNo = 1;  //显示的页数
14     String pageNoStr = request.getParameter(“pageNo”);
15     if(pageNoStr!=null && !pageNoStr.trim().equals(“”)){
16         try{
17             pageNo = Integer.parseInt(pageNoStr);
18         }catch(NumberFormatException e){
19             pageNo = 1;
20         }
21     }
22
23     if(pageNo<=0){
24         pageNo = 1;
25     }
26
27     int totalPage = 0; //总页数
28
29     List
 articles = new ArrayList
();
30     Connection conn = DB.getConn();
31     Statement stmtCount = DB.createStmt(conn);
32     ResultSet rsCount = DB.executeQuery(stmtCount,”select count(
) from article”);
33     rsCount.next();
34     int totalArticle = rsCount.getInt(1); //取得总的文章数
35
36     totalPage = (totalArticle + pageSize - 1)/pageSize; //计算总页数
37
38     if(pageNo > totalPage) pageNo = totalPage;
39
40     int startPos = (pageNo-1)  pageSize; //每页开始的帖子
41     String sql = “select top “+pageSize+”  from article where a_id not in(select top “+startPos+” a_id from article)”;
42     System.out.println(sql);
43
44     Statement stmt = DB.createStmt(conn);
45     ResultSet rs = DB.executeQuery(stmt, sql);
46     while(rs.next()) {
47         Article a = new Article();
48         a.setAId(rs.getInt(“a_id”));
49         a.setATitle(rs.getString(“a_title”));
50         a.setACont(rs.getString(“a_cont”));
51         a.setAAuthor(rs.getString(“a_author”));
52         articles.add(a);
53     }
54     DB.close(rsCount);
55     DB.close(stmtCount);
56     DB.close(rs);
57     DB.close(stmt);
58     DB.close(conn);
59
60  %>
61 <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
62 
63   
64     
65
66     
67     
68     
69     
70     
71     
72     
75   
76
77   
78     共<%=totalPage %>页 第<%=pageNo %>页 首页 “>上一页 “>下一页 “>末页
79

80
81           <%for(Iterator
 it = articles.iterator(); it.hasNext(); ) {
82                     Article a = it.next(); %>
83              
84
85
86
87
88
89
90
91
92
93
                                        <%=a.getATitle() %>                  
                                        <%=a.getACont() %>                  
                                        <%=a.getAAuthor() %>                  
              

94         <%} %>
95
96   

97 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值