MySQL分页实现(非Hibernate)
2009-12-21 00:00:00 来源:WEB开发网这里的分页,用的是MySQL的Limit特性来实现,而不是用SSH
PageControl.java
Java代码
package com.flsoft.page;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
* 分页控制类-PageControl
*
* @author FL-soft
* @version 1.0
*/
public class PageControl {
private int pageSize = 10; // 每页大小
private int rowCounts; // 总记录数
private int pageCounts; // 页面总数
private int curPageNum; // 当前页码
private String connTable; // 连接的表名
private int curPageFirst; // 当前页第一条记录的编号
private Connection conn;
/**
* 默认构造方法
*/
public PageControl() {
}
/**
* 带参构造方法
*
* @param conn
*/
public PageControl(Connection conn, String connTable, int curPageNum) {
this.conn = conn;
this.connTable = connTable;
this.curPageNum = curPageNum;
this.initThePage(); // 加载配置
}
/**
* 初始化当前页的配置
*/
public void initThePage() {
// 第一:先设置每页大小
this.setPageSize(10);
// 第二:设置总记录数
this.setRowCounts();
// 第三:设置总页数
this.setPageCounts();
// 第四:设置当前页码
this.setCurPageNum(curPageNum);
// 第五:设置当前页第一条记录的编号
this.setCurPageFirst(this.curPageNum);
}
/**
* 执行分页,返回一个结果集
*
* @return rs
*/
public ResultSet getPage() {
ResultSet rs = null;
String sql = " select * from " + connTable + " limit ?,? ";
try {
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, curPageFirst);
ps.setInt(2, pageSize);
rs = ps.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
/**
* 得到每页的记录数
*
* @return pageSize
*/
public int getPageSize() {
return pageSize;
}
/**
* 设置每页的记录数
*
* @param pageSize
*/
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
/**
* 获取总记录数
*
* @return rowCounts
*/
public int getRowCounts() {
return rowCounts;
}
/**
* 设置总的记录数
*
* @param rowCounts
*/
public void setRowCounts() {
String sql = " select count(*) from " + connTable;
try {
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
rs.next();
rowCounts = rs.getInt(1);
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 获取总页数
*
* @return pageCounts
*/
public int getPageCounts() {
return pageCounts;
}
/**
* 设置总页数
*
* @param pageCounts
*/
public void setPageCounts() {
if (rowCounts % pageSize == 0) {
pageCounts = (rowCounts / pageSize);
} else {
pageCounts = (rowCounts / pageSize) + 1;
}
}
/**
* 得到当前页数
*
* @return curPageNum
*/
public int getCurPageNum() {
return curPageNum;
}
/**
* 设置当前页
*
* @param curPageNum
*/
public void setCurPageNum(int curPageNum) {
if (curPageNum <= 1) {
this.curPageNum = 1;
} else if (curPageNum >= this.pageCounts) {
this.curPageNum = this.pageCounts;
} else {
this.curPageNum = curPageNum;
}
}
/**
* 设置要连接的表名
*
* @param connTable
*/
public void setConnTable(String connTable) {
this.connTable = connTable;
}
/**
* 获取要连接的表名
*
* @return
*/
public String getConnTable() {
return connTable;
}
/**
* 设置当前页第一条的编号
*
* @param curPageFirst
*/
public void setCurPageFirst(int curPageNum) {
curPageFirst = (curPageNum - 1) * pageSize;
}
/**
* 获取当前页的第一条的编号
*
* @return curPageFirst
*/
public int getCurPageFirst() {
return curPageFirst;
}
}
更多精彩
赞助商链接