WEB开发网
开发学院数据库MySQL MySQL分页实现(非Hibernate) 阅读

MySQL分页实现(非Hibernate)

 2009-12-21 00:00:00 来源:WEB开发网   
核心提示:这里的分页,用的是MySQL的Limit特性来实现,MySQL分页实现(非Hibernate),而不是用SSHPageControl.javaJava代码 packagecom.flsoft.page;importjava.sql.Connection;importjava.sql.PreparedStatement;

这里的分页,用的是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; 
 } 
 
} 

1 2  下一页

Tags:MySQL 实现 Hibernate

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接