分页显示批量数据

此处一共涉及两个文件:

  1. dbaccess.jsp负责建立数据库连接,而且静态包好pase.jsp
dbaccess.jsp负责建立连接
 1 <%@ page language="java" contentType="text/html; charset=GB2312"
 2     pageEncoding="GB2312"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=GB2312">
 7 <title>dbaccess</title>
 8 </head>
 9 <body>
10 <%
11     try{
12         Connection con;
13         Statement stmt;
14         Result rs;
15 
16         //加载驱动器,线面的代码是加载MySQL驱动器
17         Class.forName("com.mysql.jdbc.Driver");
18         //注册MySQL驱动器、
19         DriverManager.registerDriver(new com.mysql.jdbc.Driver());
20 
21         //用适当的驱动器连接到数据库
22         String dbUrl = "jdbc:mysql://localhost:3306/DatabaseName?useUnicode=true&charaterEncoding=GB2312";
23         String dbuser="username";
24         String dbpwd = "password";
25 
26         //建立connection
27         con = java.sql.driverManager.getConnection(dbUrl,dbuser,dbpwd);
28         //Create sql
29         stmt = con.createStatement();
30 
31 %>
32 
33     <%@ include file="pages.jsp" %>
34 
35 <%
36     stmt.close();
37     con.close();
38 
39     }catch(Exception e){
40         out.println(e.getMessage());
41     }
42 
43 %>
44 </body>
45 </html>

 

     2.pases.jsp负责分页显示数据库中表的数据;

Pages显示分页相关
 1 <%@ page language="java" contentType="text/html; charset=GB2312
 2     pageEncoding="GB2312%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=GB2312>
 7 <title>pages</title>
 8 </head>
 9 <body>
10 <%
11     //分页变量的定义;
12     final int e=3;                        //每页显示的记录数
13     int totalPages=0;                    //页面总数
14     int currentPage=1;                    //当前page编号
15     int totalCount=0;                    //database中数据的所用数据
16     int p=0//当前pase所显示的第一条记录的索引
17 
18     //读取当前待显示的页面的编号
19     String tempStr=request.getParameter("CurrentPage");
20     if (tempStr!=null && !tempStr.equals(""))
21         currentPage=Integer.parseInt(tempStr);
22 
23     /*分页预备*/
24 
25 
26     //计算总记录
27     rs=stmt.executeQuery("select count(*) from datatable;");
28     if (rs.next())
29         totalCount=rs.getInt(1);
30 
31     //计算总的页数
32     totalPages=((totalCount%e==0)?(totalCount/e):(totalCount/e+1));
33     if(totalPages==0) totalPages=1;
34 
35     //修正当前page的编号,确保: 1<=currentPage<=totalPages;
36     if(currentPage>totalPages)
37         currentPage=totalPages;
38     else if(currentPag<1)
39         currentPage=1;
40 
41     //计算当前page所显示的第一条记录索引
42     p=(currentPage-1)*e;
43 
44     String sql="select XXX,XXX from datatable order by id limit " +p+",+e";
45     rs=stmt.executeQuery(sql);
46 %>
47 
48     <%-- 显示page标签-- %>
49 //yema
50 
51 <%
52     for(int i=1;i<=totalPages;i++){
53         if(i==currentPage)
54 %>
55     <%=i%>
56 
57 <%      }else{     %>
58             <a href="dbaccess.jsp?curentPage=<%=i%>"><%=i %></a>
59 <%        }   %>
60 <%    }   %>
61 
62 &nbsp;共<%=totalPages%>页 ,共<%=totalCount%>条记录
63 
64 
65 <table border="1" width=400>
66 
67 <tr>
68     <td bgcolor="">  </td>
69     <td bgcolor="">  </td>
70     <td bgcolor="">  </td>
71     <td bgcolor="">  </td>
72 </tr>
73 
74 <%
75     while(rs.next()){
76         String XXX = rs.getString(1);
77         String XXX = rs.getString(2);
78         String XXX = rs.getString(3);
79         float XXX = rs.getfloat(4);
80 
81 %>
82     <tr>
83     <td><%=XXX %></td>
84     <td><%=XXX %></td>
85     <td><%=XXX %></td>
86     <td><%=XXX %></td>
87     </tr>
88 
89 <%
90     }
91 %>
92 </table>
93 </body>
94 </html>

 

posted @ 2013-01-10 15:49  茶陵后  阅读(290)  评论(0编辑  收藏  举报