一个测试
MySQL数据库下的JSP分页查询模块源码 2009-07-01 10:01 佚名 CSDN博客 字号:T | T 本文将向你简单介绍JSP分页查询模块的实现,对于JSP的学习者MySQL数据库并不陌生,那么本文将展示在MYSQL下的JSP分页查询模块的实现。 AD:2013云计算架构师峰会课程资料下载 对于JSP的学习者MySQL并不陌生,那么如何JSP分页查询模块的实现呢,让我们开始吧! 这个功能一共创建了两个JavaBean组件和一个JSP页面显示分页页面,第一个是处理以数据库连接的JavaBean,第一个JavaBean是处理JSP分页查询结果的代码,第三个JSP是调用第二个JavaBean,显示JSP分页查询的结果! ◆下面是连接MYSQL数据库的一个JavaBean的代码: package data; import java.sql.*; public class LoginData{ Connection conn=null; public LoginData(){ this.connect(); } public Connection getConn(){ return this.conn; } public boolean connect(){ try{ //使用JDBC桥创建数据库连接 Class.forName("org.gjt.mm.MYSQL.Driver").newInstance(); //使用DriverManager类的getConnection()方法建立连接 //第一个参数定义用户名,第二个参数定义密码 this.conn=java.sql.DriverManager.getConnection(" jdbc:MYSQL://localhost:3306/logindemo?useUnicode=true&characterEncoding=gb2312", "root","123456"); }catch(Exception ex){ ex.printStackTrace(); return false; } return true; } } ◆下面是一个JavaBean的处理MySQL数据库的JSP分页查询显示的代码 package data; import java.sql.*; import java.util.*; public class strongSplitPage { private Connection conn=null; private Statement stmt=null; private ResultSet rs=null; private ResultSetMetaData rsmd=null; //sql 查询语句 private String sqlStr; //总纪录数目 private int rowCount; //所分得逻辑页数 private int pageCount; //每页显示的纪录数目 private int pageSize; //定义表的列数目 private int columnCount; private int irows; public void initialize(String sqlStr,int pageSize,int showPage) { this.sqlStr=sqlStr; this.irows=pageSize*(showPage-1); this.pageSize=pageSize; try { LoginData loginData=new data.LoginData(); this.conn=loginData.getConn(); thisthis.stmt=this.conn.createStatement(); thisthis.rs=this.stmt.executeQuery(this.sqlStr); thisthis.rsmd=this.rs.getMetaData(); if(this.rs!=null) { this.rs.last(); thisthis.rowCount=this.rs.getRow(); this.rs.first(); thisthis.columnCount=this.rsmd.getColumnCount(); this.pageCount=(this.rowCount-1)/this.pageSize+1; this.rs.close(); this.stmt.close(); } thisthis.sqlStr=this.sqlStr+" limit "+this.irows+","+this.pageSize; thisthis.stmt=this.conn.createStatement(); thisthis.rs=this.stmt.executeQuery(this.sqlStr); }catch(Exception ex) { ex.printStackTrace(); } } public Vector getPage() { Vector vData=new Vector(); try { if(this.rs!=null) { while(this.rs.next()) { String[] sData=new String[this.columnCount]; for(int j=0;j﹤this.columnCount;j++) { sData[j]=this.rs.getString(j+1); } vData.addElement(sData); } this.rs.close(); this.stmt.close(); this.conn.close(); } }catch(Exception ex) { ex.printStackTrace(); } return vData; } //获得页面总数 public int getPageCount() { return this.pageCount; } //获得数据表中总纪录数 public int getRowCount() { return this.rowCount; } } ◆下面是显示JSP分页查询页面 ﹤%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %﹥ ﹤%@ page import="java.io.*" %﹥ ﹤%@ page import="java.util.*" %﹥ ﹤%@ page import="data.*"%﹥ ﹤jsp:useBean id="pages" scope="page" class="data.strongSplitPage" /﹥ ﹤!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"﹥ ﹤%! //显示每页的纪录数 int pageSize=10; String sqlStr=""; //当前页 int showPage=1; %﹥ ﹤% sqlStr="select * from userinfo order by id "; String strPage=null; //获得跳转到的页面 strPage=request.getParameter("showPage"); if(strPage==null){ showPage=1; pages.initialize(sqlStr,pageSize,showPage); }else{ try{ showPage=Integer.parseInt(strPage); pages.initialize(sqlStr,pageSize,showPage); }catch(NumberFormatException ex){ showPage=1; pages.initialize(sqlStr,pageSize,showPage); } if(showPage﹤1){ showPage=1; pages.initialize(sqlStr,pageSize,showPage); } if(showPage﹥pages.getPageCount()){ showPage=pages.getPageCount(); pages.initialize(sqlStr,pageSize,showPage); } } //取得要显示的数据集合 Vector vData=pages.getPage(); %﹥ ﹤html xmlns="http://www.w3.org/1999/xhtml"﹥ ﹤head﹥ ﹤meta http-equiv="Content-Type" content="text/html; charset=gb2312" /﹥ ﹤title﹥分页显示﹤/title﹥ ﹤/head﹥ ﹤body bgcolor="#ffffff" text="#000000"﹥ ﹤h1 align=center﹥个人基本信息﹤/h1﹥ ﹤div align=center﹥ ﹤table border="1" cellspacing="0" cellpadding="0" width="80%"﹥ ﹤tr﹥ ﹤th width="20%"﹥编号﹤/th﹥ ﹤th width="40%"﹥学号﹤/th﹥ ﹤th width="40%"﹥姓名﹤/th﹥ ﹤/tr﹥ ﹤% for(int i=0;i﹤vData.size();i++) { //显示数据数 String[] sData=(String[])vData.get(i); %﹥ ﹤tr﹥ ﹤td﹥﹤%=sData[0]%﹥﹤/td﹥ ﹤td﹥﹤%=sData[1]%﹥﹤/td﹥ ﹤td﹥﹤%=sData[2]%﹥﹤/td﹥ ﹤/tr﹥ ﹤% } %﹥ ﹤/table﹥ ﹤p﹥ ﹤form action="word_list_javabean.jsp" method="get" target="_self"﹥ ﹤p﹥共﹤font color=red﹥﹤%=pages.getRowCount()%﹥﹤/font﹥条 ﹤%=pageSize%﹥条/页 第﹤font color=red﹥﹤%=showPage%﹥﹤/font﹥页/共﹤font color=red﹥﹤%=pages.getPageCount()%﹥﹤/font﹥页 [﹤a href="word_list_javabean.jsp?showPage=1" target="_self"﹥首页﹤/a﹥] ﹤% //判断“上一页”链接是否要显示 if(showPage﹥1){ %﹥ [﹤a href="word_list_javabean.jsp?showPage=﹤%=showPage-1%﹥" target="_self"﹥上一页﹤/a﹥] ﹤% } else{ %﹥ [上一页] ﹤% } //判断“下一页”链接是否显示 if(showPage﹤pages.getPageCount()) { %﹥ [﹤a href="word_list_javabean.jsp?showPage=﹤%=showPage+1%﹥" target="_self"﹥下一页﹤/a﹥] ﹤% } else{ %﹥ [下一页] ﹤% } %﹥ [﹤a href="word_list_javabean.jsp?showPage=﹤%=pages.getPageCount()%﹥" target="_self"﹥尾页﹤/a﹥] 转到 ﹤select name="select"﹥ ﹤% for(int x=1;x﹤=pages.getPageCount();x++) { %﹥ ﹤option value="﹤%=x%﹥" ﹤% if(showPage==x){ out.println("selected"); } %﹥ ﹥﹤%=x%﹥﹤/option﹥ ﹤% } %﹥ ﹤/select﹥ 页 ﹤input type="submit" name="go" value="提交" /﹥ ﹤/p﹥ ﹤/form﹥ ﹤/p﹥ ﹤/div﹥ ﹤/body﹥ ﹤/html﹥