以最简单的方式实现jsp+mysql分页

刚开始弄 ,目前分页是在前台jsp中实现的 与bean相比 这样比较容易一些

先把代码贴出来 正在研究怎么样用bean实现分页 等弄好了 再贴代码

下面说下分页理论 select * from message order by time desc limit begin,size

begin 数据记录从第几条开始 begin=(当前页数-1)*size

size 每页的记录数

下面是连接数据库的javabean;

   1: package bean;
<!--CRLF-->
   2: import java.sql.*;
<!--CRLF-->
   3: 
<!--CRLF-->
   4: public class MyDb{
<!--CRLF-->
   5:     private Statement stmt;
<!--CRLF-->
   6:     private Connection conn=null;
<!--CRLF-->
   7:     private ResultSet rs=null;
<!--CRLF-->
   8:     
<!--CRLF-->
   9:     public void connection(String db_name,String user,String pwd) throws  Exception{
<!--CRLF-->
  10:         Class.forName("com.mysql.jdbc.Driver");
<!--CRLF-->
  11:         String url="jdbc:mysql://localhost:3306/" + db_name;
<!--CRLF-->
  12:         conn=DriverManager.getConnection(url,user,pwd);
<!--CRLF-->
  13:         stmt=conn.createStatement();
<!--CRLF-->
  14:     }
<!--CRLF-->
  15:     
<!--CRLF-->
  16:     public ResultSet query(String sql) throws Exception{
<!--CRLF-->
  17:         rs=stmt.executeQuery(sql);
<!--CRLF-->
  18:         return rs;
<!--CRLF-->
  19:     }
<!--CRLF-->
  20:     
<!--CRLF-->
  21:     public ResultSet query(String sql,int begin,int size) throws Exception{
<!--CRLF-->
  22:         String s=" limit " + begin + "," +size;
<!--CRLF-->
  23:         sql=sql + s;
<!--CRLF-->
  24:         rs=stmt.executeQuery(sql);
<!--CRLF-->
  25:         return rs;
<!--CRLF-->
  26:     }
<!--CRLF-->
  27: 
<!--CRLF-->
  28:     
<!--CRLF-->
  29:     public int update(String sql) throws  Exception{
<!--CRLF-->
  30:         int n=0;
<!--CRLF-->
  31:         n=stmt.executeUpdate(sql);
<!--CRLF-->
  32:         return n;
<!--CRLF-->
  33:     }
<!--CRLF-->
  34:     
<!--CRLF-->
  35:     public boolean delete(String sql) throws  Exception{
<!--CRLF-->
  36:         boolean flag=false;
<!--CRLF-->
  37:         flag=stmt.execute(sql);
<!--CRLF-->
  38:         return flag;
<!--CRLF-->
  39:     }
<!--CRLF-->
  40: }
<!--CRLF-->

下面是jsp的代码;

   1: <jsp:useBean id="db" class="bean.MyDb" scope="page" />
<!--CRLF-->
   2: <%
<!--CRLF-->
   3: int page_count;    //总页数
<!--CRLF-->
   4: int p;    //当前面号
<!--CRLF-->
   5: int size=3;    //每页记录数
<!--CRLF-->
   6: int result_count;    //总记录数
<!--CRLF-->
   7: int begin;    //当前页第一条记录索引号
<!--CRLF-->
   8: ResultSet rs=null;
<!--CRLF-->
   9: String page_s=request.getParameter("page");
<!--CRLF-->
  10: if(page_s==null)    page_s="1";
<!--CRLF-->
  11: db.connection("test","root","root");
<!--CRLF-->
  12: String sql="select count(*) from message";
<!--CRLF-->
  13: rs=db.query(sql);
<!--CRLF-->
  14: rs.next();
<!--CRLF-->
  15: result_count=rs.getInt(1); 
<!--CRLF-->
  16: page_count=(result_count + size - 1)/size;
<!--CRLF-->
  17: p=Integer.parseInt(page_s);
<!--CRLF-->
  18: out.println("总记录数为:" + result_count + "     每页记录数为:" + size + "     总页数为:" + page_count + "     当前是第" + p + "页");
<!--CRLF-->
  19: sql="select * from message order by time desc";
<!--CRLF-->
  20: begin=(p-1)*size;
<!--CRLF-->
  21: rs=db.query(sql,begin,size);
<!--CRLF-->
  22: while(rs.next()){
<!--CRLF-->
  23: %>
<!--CRLF-->
  24: <table>
<!--CRLF-->
  25: <tr>
<!--CRLF-->
  26: <td  width="200"><%=rs.getString(1)%></td>
<!--CRLF-->
  27: <td width="200"><%=rs.getString(2)%></td>
<!--CRLF-->
  28: </tr>
<!--CRLF-->
  29: <tr>
<!--CRLF-->
  30: <td><%=rs.getString(3)%></td>
<!--CRLF-->
  31: <td><%=rs.getString(4)%></td>
<!--CRLF-->
  32: </tr>
<!--CRLF-->
  33: <tr><td colspan="2"><%=rs.getString(5)%></td></tr>
<!--CRLF-->
  34: <tr><td colspan="2"><hr /></td></tr>
<!--CRLF-->
  35: </table>
<!--CRLF-->
  36: <%
<!--CRLF-->
  37: }
<!--CRLF-->
  38: if(p>1)    out.println("<a href=test.jsp?page=" + (p-1) + ">上一页</a>");
<!--CRLF-->
  39: if(p<page_count)    out.println("<a href=test.jsp?page=" + (p+1) + ">下一页</a>");
<!--CRLF-->
  40: %>
<!--CRLF-->

-----------------------------------------------------------------------------------------------------------------

代码很粗糙, 将就着看吧 但是很适合新手学习.. 完全是自己写的..

等把bean写好了 传上来大家分享.

你可能感兴趣的:(sql,jsp,mysql,bean,jdbc)