jsp+java bean+mysql数据库进行分页显示

12 篇文章 0 订阅

原来没有写过,听朋友说,比较难,就试一下,还是挺简单的,只不过,具体实用方面还得自己写,没有什么难的,自己看看就懂了。

bean文件:

package bean;
/**
 * jsp+java bean+mysql数据库进行分页显示
 * 这里连接的数据库是MYSQL
 * 表的情况是test数据库中的test表,建表用语句create table test(id int,name char(50),age int)
 * 用所得的结果进行分页显示
 */
import java.sql.*;
import java.util.Vector;


public class Conn {
 /**
  * 生成数据库连接
  * @return
  */
 public int resultPage;//用于取得最后是第几页的内容,因为给的要显示的页可能大于所有的页数,这时就要调整.
 public int totalPage;
 public Connection getConn()
 {
  Connection C=null;
  try {
   Class.forName("org.gjt.mm.mysql.Driver").newInstance();
   C= DriverManager.getConnection("jdbc:mysql://localhost/test?user=root&password=admin&useUnicode=true&characterEncoding=8859_1");
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return C;
 }
 public void doDel(int ID)
 {
  Connection con=getConn();
  try {
   Statement st=con.createStatement();
   st.execute("delete from test where id="+ID);
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
 }
 /**
  * 根据查询条件,将查询结果以Vector的形式返回
  * @param pageSize 每页显示的记录条数
  * @param currentPage 当前是第几页
  * @param sql sql查询语句
  * @return
  */
 public Vector getResult(int pageSize,int currentPage,String sql)
 {
  int rowNum=0;
  int page=0;
  int beginRow=0;
  Vector resultRows=new Vector();
  try{
   Statement st=getConn().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
   ResultSet rs=st.executeQuery(sql);
   rs.last();
   rowNum=rs.getRow();
   if(rowNum%pageSize==0)
   {
    page=rowNum/pageSize;
   }
   else
    page=rowNum/pageSize+1;
   if(currentPage>page)
   {
    currentPage=page;
   }
   if(currentPage<1)
   {
    currentPage=1;
   }
   resultPage=currentPage;
   totalPage=page;
   beginRow=(currentPage-1)*pageSize+1;
   //System.out.println("beginRow:"+beginRow);
   rs.absolute(beginRow);
   int i=1;
   while(!rs.isAfterLast() && i<=pageSize)
   {
    Vector v=new Vector();
    v.add(rs.getInt(1));
    v.add(rs.getString(2));
    v.add(rs.getInt(3));
    resultRows.add(v);
    i++;
    rs.next();
   }
   //System.out.println("PageSize:"+pageSize);
   //System.out.println("Total Page:"+page);
  }
  catch(Exception e)
  {
   e.printStackTrace();
  }
  return resultRows;
 }
 public static void main(String[] arg)
 {
  Conn c=new Conn();
  Vector vector=c.getResult(5,2,"select * from test");
  for(int i=0;i<vector.size();i++)
  {
   Vector v=new Vector();
   v=(Vector)vector.elementAt(i);
   //System.out.print(v.elementAt(0)+"  ");
   //System.out.print(v.elementAt(1)+"  ");
   //System.out.println(v.elementAt(2));
  }
  //System.out.println(Integer.parseInt(""));
 }
}

 JSP测试文件:

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<jsp:useBean id="xxx" scope="session" class="bean.Conn"/>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>My JSP 'index.jsp' starting page</title>
   
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->

  </head>
 
  <body>
    This is my JSP page. <br>
    <% 
     String request_page_s=request.getParameter("page");     
     int request_page;
     int pageSize=3;
     try{
      if(request_page_s.length()==0)
       request_page=1;
      else
       request_page=Integer.parseInt(request_page_s);
     }
     catch(Exception e)
     {
      request_page=1;
     }
     Vector vector=xxx.getResult(pageSize,request_page,"select * from test");
     for(int i=0;i<vector.size();i++)
     {
      Vector v=(Vector)vector.elementAt(i);
   out.print(v.elementAt(0)+"  ");
   out.print(v.elementAt(1)+"  ");
   out.print(v.elementAt(2)+"<br>");
     }
     out.print("<a href=index.jsp?page=1>首页</a>  ");
     int p_page=0;
     int n_page=0;
     if(xxx.resultPage==1)
      p_page=1;
     else
      p_page=xxx.resultPage-1;
     if(xxx.resultPage==xxx.totalPage)
      n_page=xxx.resultPage;
     else
      n_page=xxx.resultPage+1;
     out.print("<a href=index.jsp?page="+p_page+">上页</a>  ");
     out.print("<a href=index.jsp?page="+n_page+">下页</a>  ");
     out.print("<a href=index.jsp?page="+xxx.totalPage+">末页</a>  ");
    %>
    <br>
  </body>
</html>

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值