package com.csu.crm.common.page;
import java.io.Serializable;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import com.csu.crm.common.DBConnection;
import com.csu.crm.common.Debug;
import com.csu.crm.common.exception.DAOSystemException;
/**
* Classname :PaginationDAO
* Description :用于进行分页显示的类
* Date :2007-07-10
* Author :li.haibo
* Version : 1.0
*/
public class PaginationDAO implements Serializable
{
// 变量定义区
private long nTotal = 0; /** 总的记录数 */
private int nPageSum = 1; /** 总页数 */
private int nPageNo = 1; /** 第几页,从1开始 */
private int nPageRows = -1; /** 每页几行,如果为-1,则表示不进行分页 */
private String sql="";
private DBConnection conn=new DBConnection();
public long getNTotal() {
return nTotal;
}
public int getNPageNo() {
return nPageNo;
}
public int getNPageSum() {
return nPageSum;
}
public void setNPageRows(int nPageRows) {
this.nPageRows = nPageRows;
}
public void setNTotal(long nTotal) {
this.nTotal = nTotal;
}
public void setNPageNo(int nPageNo) {
this.nPageNo = nPageNo;
}
public void setNPageSum(int nPageSum) {
this.nPageSum = nPageSum;
}
public int getNPageRows() {
return nPageRows;
}
/**
* 取总的记录数,返回long
*/
public long getTotalNum()
{
return nTotal;
}
/**
* 取总的记录数,返回String
*/
public String getTotalNumStr()
{
return Long.toString(nTotal);
}
/**
* 设置总的记录数
*/
public void setTotalNum(long aValue)
{
nTotal = aValue;
}
/**
* 设置总的记录数
*/
public void setTotalNum(String aValue)
{
try {
nTotal = Long.parseLong(aValue);
} catch (Exception e) {
nTotal = 0;
}
}
/////////////
/**
* 取总页数,返回int
*/
public int getPageSum()
{
return nPageSum;
}
/**
* 取总页数,返回String
*/
public String getPageSumStr()
{
return Integer.toString(nPageSum);
}
/**
* 设置总页数
*/
public void setPageSum(int aValue)
{
nPageSum = aValue;
}
/**
* 设置总页数
*/
public void setPageSum(String aValue)
{
try {
nPageSum = Integer.parseInt(aValue);
} catch (Exception e) {
nPageSum = 0;
}
}
/////////////
/**
* 取第几页,返回int
*/
public int getPageNo()
{
return nPageNo;
}
/**
* 取第几页,返回String
*/
public String getPageNoStr()
{
return Integer.toString(nPageNo);
}
/**
* 设置第几页
*/
public void setPageNo(int aValue)
{
nPageNo = aValue;
}
/**
* 设置第几页
*/
public void setPageNo(String aValue)
{
try {
nPageNo = Integer.parseInt(aValue);
} catch (Exception e) {
nPageNo = 0;
}
}
/////////////
/**
* 取每页几行,返回int
*/
public int getPageRows()
{
return nPageRows;
}
/**
* 取每页几行,返回String
*/
public String getPageRowsStr()
{
return Integer.toString(nPageRows);
}
/**
* 设置每页几行
*/
public void setPageRows(int aValue)
{
nPageRows = aValue;
}
/**
* 设置每页几行
*/
public void setPageRows(String aValue)
{
try {
nPageRows = Integer.parseInt(aValue);
} catch (Exception e) {
nPageRows = 0;
}
}
///////////////////////////////////////////////////////////
// 内部公用函数
///////////////////////////////////////////////////////////
/**
* 把输入的SQL语句转成分页显示的查询语句, 不带分页信息
* 输入:sqlstr
* 输出:pageSql
*/
private String convertToPageSQL(String sqlstr) throws Exception
{
try {
String pageSql = " select * from (select rownum as rno, pagesql.* from (" + sqlstr + ") pagesql) ";
return pageSql;
}catch(Exception e){
throw e;
}
}
/**
* 把输入的SQL语句转成计算总记录数的语句
* 输入:sqlstr
* 输出:sumSql
*/
private String convertToSumSQL(String sqlstr)
{
//System.out.println(" select count(*) as TOTAL_RECORD from (" + sqlstr + ") ");
sql= "select count(*) as TOTAL_RECORD from (" + sqlstr + ") ";
return " select count(*) as TOTAL_RECORD from (" + sqlstr + ") ";
}
///////////////////////////////////////////////////////////
// 支持 PreparedStatement 的分页显示
///////////////////////////////////////////////////////////
/**
* 对分页的SQL语句添加分页信息, , PreparedStatement 版本
* 输入:pageSql
* 输出:pageSqlPS
*/
private String appendPageSQLToPS(String pageSql) throws Exception
{
try {
return pageSql + " where rownum <= ? and rno > ? ";
}catch(Exception e){
throw e;
}
}
/**
* 对输入的SQL语句生成分页处理的 PreparedStatement
* 输入: conn, sqlstr
* 输出: psPage
*/
public PreparedStatement makePagePrepareStatement(Connection conn, String sqlstr) throws Exception
{
try {
if (conn == null) {
Debug.print("ERROR: Connection is NULL !!!");
return null;
}
String pageSql = null;
if (nPageRows == -1) { // 不进行分页显示
pageSql = sqlstr;
} else {
pageSql = appendPageSQLToPS(convertToPageSQL(sqlstr));
}
return conn.prepareStatement(pageSql);
}catch(Exception e){
throw e;
}
}
/**
* 返回所需页数的Resultset, PreparedStatement 版本,
* 输入:psPage, nPos
* 输出:rs
*/
public ResultSet executeQuery(PreparedStatement psPage, int nPos) throws DAOSystemException
{
try {
if (psPage == null) {
Debug.print("ERROR: PreparedStatement is NULL !!!");
return null;
}
int i = nPos;
if (nPageRows != -1) { // 进行分页显示
if (nPageNo > nPageSum) { nPageNo = nPageSum; }
psPage.setInt(i ++, nPageRows);
psPage.setInt(i ++, (nPageNo - 1) * nPageRows);
}
return psPage.executeQuery();
}catch(Exception e){
e.printStackTrace(); // 打印出错堆栈
DAOSystemException appe = new DAOSystemException("进行PreparedStatement分页显示时出错!");
throw appe;
}
}
/**
* 对总记录也应生成要处理的 PreparedStatement
* 输入: conn, sqlstr
* 输出: psSum
*/
public PreparedStatement makeSumPrepareStatement(Connection conn, String sqlstr) throws Exception
{
try {
if (conn == null) {
Debug.print("ERROR: Connection is NULL !!!");
return null;
}
return conn.prepareStatement(convertToSumSQL(sqlstr));
}catch(Exception e){
throw e;
}
}
/**
* 得出总记录数, PreparedStatement 版本
* 输入: psSum
* 输出: nTotal
*/
public long getSumNumberBySQL(PreparedStatement psSum) throws DAOSystemException
{
ResultSet rs=null;
try {
没有合适的资源?快使用搜索试试~ 我知道了~
SSH_CRM客户关系管理系统
共490个文件
java:149个
class:135个
xml:69个
3星 · 超过75%的资源 需积分: 9 343 下载量 64 浏览量
2008-06-13
08:48:17
上传
评论 2
收藏 783KB RAR 举报
温馨提示
SSH_CRM客户关系管理系统
资源推荐
资源详情
资源评论
收起资源包目录
SSH_CRM客户关系管理系统 (490个子文件)
QueryUtil.class 11KB
NameMapDAOImpl.class 9KB
NameListDAOImpl.class 8KB
PaginationDAO.class 7KB
CrmCustomer.class 6KB
CrmComplaintLevDAO.class 6KB
CrmRoleRightDAO.class 6KB
CrmEntIndustryDAO.class 6KB
CrmEntPropertyDAO.class 6KB
CrmFeedbackLevDAO.class 6KB
CrmCsComplaintDAO.class 6KB
CrmCsFeedbackDAO.class 6KB
CrmEmpRoleDAO.class 5KB
CrmCommodityDAO.class 5KB
CrmEntCreditDAO.class 5KB
CrmCustomerDAO.class 5KB
CrmBulletinDAO.class 5KB
CrmEmployeeDAO.class 5KB
CrmProvinceDAO.class 5KB
CrmContactDAO.class 5KB
CrmCuStateDAO.class 5KB
CrmCsStateDAO.class 5KB
CrmAreaLevDAO.class 5KB
CrmActionDAO.class 5KB
CrmRightDAO.class 5KB
CrmCuLevDAO.class 5KB
CrmAreaDAO.class 5KB
CrmBankDAO.class 5KB
CrmRoleDAO.class 5KB
CrmBsDAO.class 5KB
CrmEmployee.class 5KB
CustomerForm.class 5KB
LoginAction.class 5KB
QueryAction.class 5KB
CrmContact.class 5KB
CustomerAction.class 4KB
PrepareUtil.class 4KB
MatchCheckServlet.class 4KB
UpdateAction.class 4KB
CrmAreaMapDAOImpl.class 4KB
BeanUtil.class 4KB
DBConnection.class 4KB
CrmCustomerVO.class 4KB
DeleteAction.class 4KB
AddAction.class 4KB
FeedbackLevAction.class 4KB
IndustryAction.class 3KB
CsStateAction.class 3KB
LoginCrmEmpRoleDAO.class 3KB
RoleRightAction.class 3KB
PropertyAction.class 3KB
CommodityAction.class 3KB
ComplaintAction.class 3KB
CuStateAction.class 3KB
AreaLevAction.class 3KB
EmpRoleAction.class 3KB
FeedbackAction.class 3KB
CreditAction.class 3KB
CuLevAction.class 3KB
RightAction.class 3KB
RoleAction.class 3KB
BankAction.class 3KB
BsAction.class 3KB
ComplaintLevAction.class 3KB
EmployeeAction.class 3KB
ContactForm.class 3KB
CrmBulletin.class 3KB
EmployeeForm.class 3KB
SelectCityServlet.class 3KB
SingleObjectDAOImpl.class 3KB
CrmCsComplaint.class 3KB
BsForm.class 3KB
UniqueCheckServlet.class 3KB
DeleteUtil.class 3KB
UpdatePwdServlet.class 3KB
SqlStringDAOImpl.class 3KB
CrmBs.class 3KB
CrmRight.class 3KB
Debug.class 3KB
CrmCsFeedback.class 3KB
BulletinForm.class 2KB
CrmCommodity.class 2KB
IterateMapTag.class 2KB
CrmArea.class 2KB
CrmAction.class 2KB
PageinationVO.class 2KB
LoginCrmEmployeeDAO.class 2KB
CrmAreaTest.class 2KB
IterateListTag.class 2KB
ConnectionHelper.class 2KB
CrmCuLev.class 2KB
CrmRole.class 2KB
CrmEmpRoleId.class 2KB
CrmRoleRightId.class 2KB
CrmComplaintLev.class 2KB
CommodityForm.class 2KB
Right.class 2KB
CrmFeedbackLev.class 2KB
CrmEntProperty.class 1KB
CrmEntIndustry.class 1KB
共 490 条
- 1
- 2
- 3
- 4
- 5
资源评论
- 无所谓1252014-05-24我正在写crm项目,看了一下这个看起来还不错整体上来说。
- utf-8882013-07-04好像没有数据库哦
- u0109248562015-05-11还不错,值得参考
- 猿意马2018-10-18还可以,可以借鉴 一下
- dandan4212013-08-28现正做一个CRM系统,参考了。
xywei2008
- 粉丝: 29
- 资源: 208
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功