分页功能已经实现,怎样修改才会更合理

这个分页代码功能是实现啦,我用的是Mysql的数据库
请你们给些意见,该怎样修改才会使它会更好用,并且更合理
java 代码
  1. package com.gjx.util;   
  2.   
  3. import java.sql.ResultSet;   
  4. import java.sql.SQLException;   
  5.   
  6. import org.apache.commons.logging.Log;   
  7. import org.apache.commons.logging.LogFactory;   
  8.   
  9. public class Pager {   
  10.     private static final Log logger=LogFactory.getLog(Pager.class);   
  11.     //总的行数   
  12.     private int count;   
  13.     //每页显示的数量      
  14.     private int length;   
  15.     //偏移量   
  16.     private int offset;   
  17.     //总共有多少页   
  18.     private int  size;   
  19.     //所传进来的页码数为   
  20.     private int pageNum;   
  21.     ResultSet rs=null;   
  22.        
  23.        
  24.     public Pager(ResultSet rs,int pageNum,int length){   
  25.         this.rs=rs;   
  26.         this.length=length;   
  27.         this.pageNum=pageNum;   
  28.     }   
  29.     public int getRows(){   
  30.         try {   
  31.             rs.last();   
  32.             count =rs.getRow();   
  33.             rs.first();   
  34.         } catch (SQLException e) {   
  35.             logger.error("取得数据结果集行数时出错"+e);   
  36.         }   
  37.         return count;          
  38.     }   
  39.     public int getSize(){   
  40.   
  41.         size=(this.getRows()%this.length)==0?this.getRows()/this.length:this.getRows()/this.length+1;   
  42.         return size;   
  43.     }   
  44.     public int getOffset(){    
  45.         this.getRows();   
  46.         this.getSize();        
  47.         offset=(this.pageNum-1)*length>=0?(this.pageNum-1)*length:0;   
  48.   
  49.         return offset;   
  50.     }   
  51.   
  52. }   

 

 

java 代码
  1. //取得每页显示的数量条数   
  2.     public List getAccountList(HttpServletRequest request, int pageNum, int length) {   
  3.         List<Account> list = new ArrayList<Account>();   
  4.         String sql = "select * from account";   
  5.         //HttpServletRequest request=null;   
  6.   
  7.         try {   
  8.             // conn = dbc.getConnection();   
  9.             conn = Factory.getDBConnection().getConnection();   
  10.             stmt = conn.createStatement();             
  11.             rs = stmt.executeQuery(sql);   
  12.             Pager pager=new Pager(rs,pageNum,length);   
  13.             request.setAttribute("size",pager.getSize());   
  14.             sql = "select * from account limit "+pager.getOffset()+","+length;   
  15.             rs = stmt.executeQuery(sql);   
  16.             while (rs.next()) {   
  17.                 Account account = new Account();   
  18.                 account.setUserId(rs.getString("userId"));   
  19.                 account.setUsername(rs.getString("username"));   
  20.                 account.setPassword(rs.getString("password"));   
  21.                 account.setLevel(rs.getInt("level"));   
  22.                 account.setEmail(rs.getString("email"));   
  23.                 list.add(account);   
  24.             }   
  25.             this.close();   
  26.         } catch (SQLException e) {   
  27.             System.err.println("当执行静态的Statement 语句 时出错,错误原因:" + e);   
  28.             e.printStackTrace();   
  29.         }   
  30.   
  31.         return list;   
  32.     }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值