这个分页代码功能是实现啦,我用的是Mysql的数据库
请你们给些意见,该怎样修改才会使它会更好用,并且更合理
java 代码
- package com.gjx.util;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
- public class Pager {
- private static final Log logger=LogFactory.getLog(Pager.class);
- //总的行数
- private int count;
- //每页显示的数量
- private int length;
- //偏移量
- private int offset;
- //总共有多少页
- private int size;
- //所传进来的页码数为
- private int pageNum;
- ResultSet rs=null;
- public Pager(ResultSet rs,int pageNum,int length){
- this.rs=rs;
- this.length=length;
- this.pageNum=pageNum;
- }
- public int getRows(){
- try {
- rs.last();
- count =rs.getRow();
- rs.first();
- } catch (SQLException e) {
- logger.error("取得数据结果集行数时出错"+e);
- }
- return count;
- }
- public int getSize(){
- size=(this.getRows()%this.length)==0?this.getRows()/this.length:this.getRows()/this.length+1;
- return size;
- }
- public int getOffset(){
- this.getRows();
- this.getSize();
- offset=(this.pageNum-1)*length>=0?(this.pageNum-1)*length:0;
- return offset;
- }
- }
java 代码
- //取得每页显示的数量条数
- public List getAccountList(HttpServletRequest request, int pageNum, int length) {
- List<Account> list = new ArrayList<Account>();
- String sql = "select * from account";
- //HttpServletRequest request=null;
- try {
- // conn = dbc.getConnection();
- conn = Factory.getDBConnection().getConnection();
- stmt = conn.createStatement();
- rs = stmt.executeQuery(sql);
- Pager pager=new Pager(rs,pageNum,length);
- request.setAttribute("size",pager.getSize());
- sql = "select * from account limit "+pager.getOffset()+","+length;
- rs = stmt.executeQuery(sql);
- while (rs.next()) {
- Account account = new Account();
- account.setUserId(rs.getString("userId"));
- account.setUsername(rs.getString("username"));
- account.setPassword(rs.getString("password"));
- account.setLevel(rs.getInt("level"));
- account.setEmail(rs.getString("email"));
- list.add(account);
- }
- this.close();
- } catch (SQLException e) {
- System.err.println("当执行静态的Statement 语句 时出错,错误原因:" + e);
- e.printStackTrace();
- }
- return list;
- }