JSP实现分页显示

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介:

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

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 


相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
前端开发 Java 关系型数据库
基于JSP实现医院病历管理系统
基于JSP实现医院病历管理系统
171 0
基于JSP实现医院病历管理系统
|
Java 应用服务中间件 开发工具
JSP实现小区物业管理系统
JSP实现小区物业管理系统
111 1
JSP实现小区物业管理系统
|
Java 数据安全/隐私保护
基于JSP实现网上商城系统
基于JSP实现网上商城系统
199 1
基于JSP实现网上商城系统
|
JavaScript 前端开发 Java
|
Java 数据安全/隐私保护
JSP实现医院住院管理系统
JSP实现医院住院管理系统
297 0
JSP实现医院住院管理系统
|
Java 关系型数据库 MySQL
基于JSP&Servlet实现的众筹平台系统
基于JSP&Servlet实现的众筹平台系统
124 0
基于JSP&Servlet实现的众筹平台系统
|
存储 前端开发 Java
KS003基于JSP和Servlet实现的商城系统
KS003基于JSP和Servlet实现的商城系统
190 0
KS003基于JSP和Servlet实现的商城系统
|
前端开发 Java 关系型数据库
KS007基于JSP实现人个人博客系统
KS007基于JSP实现人个人博客系统
111 0
KS007基于JSP实现人个人博客系统
|
前端开发 Java 关系型数据库
基于JSP实现毕业设计选题系统
基于JSP实现毕业设计选题系统
基于JSP实现毕业设计选题系统
|
Java 关系型数据库 MySQL
基于JSP实现学校社团管理系统
基于JSP实现学校社团管理系统
135 0
基于JSP实现学校社团管理系统