jsp+mysql分页
来源:互联网 发布:工程造价软件有哪些 编辑:程序博客网 时间:2024/06/05 17:57
关键代码是MySQL下的一条命令:select * from表名 limit 第几页(0开始),每页的记录数;换句话说,只要改变第几页这个变量就能实现分页的浏览了。
1。建立2个Bean,一个是负责数据库连接,一个负责分页。
package DBConn;
import java.sql.*;
import java.lang.*;
public class MySQLConnection {
private StringDBDriver="com.mysql.jdbc.Driver";
private StringConnStr="jdbc:mysql://localhost:3306/zb?user=root&password=admin";
public MySQLConnection() throwsjava.lang.NullPointerException
{
try{
Class.forName(DBDriver);
}
catch(ClassNotFoundException e){
System.err.println(e.getMessage());
}
}
public String getConnStr()
{
return ConnStr;
}
}
package DBConn;
import java.sql.*;
import java.lang.*;
import DBConn.MySQLConnection.*;
public class PageBreak {
private String ConnStr="";
private Connection conn=null;
private ResultSet rs=null;
private int PageSize=0;//一页几个记录
private int PageNumber=0;//页号
public PageBreak() throwsjava.lang.NullPointerException
{
MySQLConnection DBConnection=newMySQLConnection();
ConnStr=DBConnection.getConnStr();//得到ConnStr
}
public ResultSet executeQuery(String sql) throwsjava.lang.NullPointerException
{
rs=null;
try{
conn=DriverManager.getConnection(ConnStr);
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}
catch(SQLException e){
System.err.println(e.getMessage());
}
return rs;
}
public int RecordNumber() throwsjava.lang.NullPointerException//得到表的记录总数
{
rs=null;
int ColNumber=0;
try{
conn=DriverManager.getConnection(ConnStr);
Statement stmt=conn.createStatement();
rs=stmt.executeQuery("select count(*) asColNumber from User" );
while (rs.next())
{
ColNumber=rs.getInt("ColNumber");
}
}
catch(SQLException e){
System.err.println(e.getMessage());
}
return ColNumber;
}
public void setPageSize(int pPageSize)//设置页面大小,并且计算出一共有多少页
{
this.PageSize=pPageSize;
int RecordNumber=this.RecordNumber();
this.PageNumber=(int)Math.floor(RecordNumber/PageSize);
}
public int getPageSize()//得到页面大小
{
return this.PageSize;
}
public int getPageNumber()//得到页面数
{
return this.PageNumber;
}
public void Close()//显示关闭连接
{
try{
conn.close();
rs.close();
}
catch(SQLException e){
System.err.println(e.getMessage());
}
}
}
2。建立JSP页面
<%@ pagecontentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<jsp:useBean id="DBConnection"scope="page" class="DBConn.PageBreak"/>
<html>
<body>
<%
DBConnection.setPageSize(2);//设置页面大小
int RecordPerPage=DBConnection.getPageSize();//得到页面大小
int PageNumber=DBConnection.getPageNumber();//得到页面数
int offSet=0;//Select 中的第几页,0开始
int Next=2;//连接“下一页”的初始化
int Pre=1;//连接“上一页”的初始化
int AbsolutePage=1;//绝对页面,1开始。作为连接“下一页”、“上一页”的过渡变量
if(request.getParameter("PageNo")==null)//没有参数传入,则为物理的1页,即0
offSet=0;
elseif(request.getParameter("PageNo")!=null)
{
offSet=Integer.parseInt(request.getParameter("PageNo"))-1;//有参数传入,参数为逻辑页面号,减1得物理页面号
if((offSet+1)>PageNumber)//达到最后一页
{
offSet=PageNumber;
AbsolutePage=PageNumber+1;
Next=AbsolutePage;
Pre=Next-1;
}
else if(offSet<1)//达到第一页
{
offSet=0;
AbsolutePage=offSet+1;
Next=AbsolutePage+1;
Pre=Next-1;
}
else
{
AbsolutePage=offSet+1;
Next=AbsolutePage+1;
Pre=AbsolutePage-1;
}
}
String QuerySQL="select * from user limit"+offSet*RecordPerPage+","+RecordPerPage;//关键代码
ResultSet RS=DBConnection.executeQuery(QuerySQL);
while(RS.next())
{
StringuserName=RS.getString("UserName");
out.print(userName+"<br>");
}
out.print("<ahref='test.jsp?PageNo="+(Next)+"'>next</a><br>");//下一页
out.print("<ahref='test.jsp?PageNo="+(Pre)+"'>previous</a>");//上一页
RS.close();
DBConnection.Close();
%>
</body>
</html>
- JSP+mysql简单分页
- jsp+mysql分页实现
- JSP+MYSQL分页技术
- jsp+mysql分页
- JSP+MYSQL进行分页
- sqlserver mysql jsp 分页
- jsp+mysql实现分页
- jsp+jdbc+MySQL分页
- JDBC、mysql、jsp分页
- jsp+MySQL实现分页
- Jsp-MySQL数据库分页
- jsp + mysql 的分页程序
- JSP+MySQL实现分页功能
- JSP-mysql基本分页技术
- JSP分页,使用Hibernate+mysql
- jsp用到mysql进行分页
- JSP分页(MySql+c3p0+dbutils)
- MySQL实现分页JSP+JAVABEAN实现
- Radix sort
- 2010-07-19
- 词法分析生成器 之 lexertl 【4】添加文件解析行号功能
- x86汇编的两种语法
- C++面试题汇总
- jsp+mysql分页
- C++重要知识点
- 夜的沉思
- db2cmd
- SQL高级查询
- 睿嵌工作室成员介绍
- Eclipse CDT 控制台输出问题
- SQL Server 2008 删除太大的日志文件
- 实现Ribbon风格的窗体