设为首页 收藏本站
查看: 381|回复: 0

[经验分享] jsp的分页查询的代码(mysql数据库)

[复制链接]

尚未签到

发表于 2016-10-17 09:36:21 | 显示全部楼层 |阅读模式
  这个功能一共创建了两个javabean组件和一个jsp页面显示分页页面,第一个是处理以数据库连接的javabean,第一个javabean是处理分页查询结果的代码,第三个jsp是调用第二个javabean,显示分页查询结果!
  //下面是连接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数据库的分页显示查询的代码

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();
this.stmt=this.conn.createStatement();
this.rs=this.stmt.executeQuery(this.sqlStr);
this.rsmd=this.rs.getMetaData();
if(this.rs!=null)
{
this.rs.last();
this.rowCount=this.rs.getRow();
this.rs.first();
this.columnCount=this.rsmd.getColumnCount();
this.pageCount=(this.rowCount-1)/this.pageSize+1;
this.rs.close();
this.stmt.close();
}
this.sqlStr=this.sqlStr+" limit "+this.irows+","+this.pageSize;
this.stmt=this.conn.createStatement();
this.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>条&nbsp;<%=pageSize%>条/页&nbsp;&nbsp;第<font color=red><%=showPage%></font>页/共<font color=red><%=pages.getPageCount()%></font>页&nbsp;&nbsp;[<a href="word_list_javabean.jsp?showPage=1" target="_self">首页</a>]&nbsp;
       <%
       //判断“上一页”链接是否要显示
    if(showPage>1){
    %>
       [<a href="word_list_javabean.jsp?showPage=<%=showPage-1%>" target="_self">上一页</a>]&nbsp;
    <%
       }
       else{   
    %>
            [上一页]&nbsp;
  <%
         }
      //判断“下一页”链接是否显示
      if(showPage<pages.getPageCount())
      {
  %>   
    [<a href="word_list_javabean.jsp?showPage=<%=showPage+1%>" target="_self">下一页</a>]&nbsp;
    <%
       }
       else{   
    %>
            [下一页]&nbsp;
  <%
     }
  %>   
 
    [<a href="word_list_javabean.jsp?showPage=<%=pages.getPageCount()%>" target="_self">尾页</a>]&nbsp;转到
        <select name="select">
  <%
       for(int x=1;x<=pages.getPageCount();x++)
    {
  %>
            <option value="<%=x%>"
      <%
          if(showPage==x){
           out.println("selected");
        }  
      %> ><%=x%></option>
  <%
       }
  %>   
        </select>
        页&nbsp;&nbsp;&nbsp;
        <input type="submit" name="go" value="提交" />
    </p>
  </form>
    </p>
    </div>
</body>
</html>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-287296-1-1.html 上篇帖子: hibernate C3P0数据源 连接MySQL数据库 下篇帖子: mysql数据库自动定期备份的脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表