java实现分页工具类(JDBC)
2012-08-22 16:27
405 查看
分页的实现在日常的开发中会经常遇到,编写一个分页工具类,以后可以直接引用了,呵呵。。。
1.分页工具类,封装分页信息
2.测试类
1.分页工具类,封装分页信息
package com.student.util; import java.util.List; import com.student.entity.Person; /** * 封装分页信息 * @author Administrator * * @param <Person> */ public class PageModel<E> { //结果集 private List<E> list; //查询记录数 private int totalRecords; //第几页 private int pageNo; //每页多少条记录 private int pageSize; //总页数 public int getTotalPages(){ return (totalRecords + pageSize -1)/pageSize; } //首页 public int getTopPage(){ return 1; } //上一页 public int getPreviousPage(){ if(pageNo<=1){ return 1; } return pageNo-1; } //下一页 public int getNextPage(){ if(pageNo>=getBottomPage()){ return getBottomPage(); } return pageNo+1; } //尾页 public int getBottomPage(){ return getTotalPages(); } public List<E> getList() { return list; } public void setList(List<E> list) { this.list = list; } public int getTotalRecords() { return totalRecords; } public void setTotalRecords(int totalRecords) { this.totalRecords = totalRecords; } public int getPageNo() { return pageNo; } public void setPageNo(int pageNo) { this.pageNo = pageNo; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } }
2.测试类
public class PageModelTest{ public static void main(String[] args){ int pageNo=1; int pageSize=10; findUserList(pageNo,pageSize); } /** * 分页查询 * @param pageNo 第几页 * @param pageSize 每页多少条记录 * @return PageModel<E> */ public PageModel<Person> findUserList(int pageNo,int pageSize){ PageModel<Person> pageModel = null; Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; //各数据库的分页语句不一样 /*oracle实现分页,三层嵌套,这里10应该为pageNo*pageSize ,0为(pageNo-1)*pageSize String sql=" select column1,column2,column3,column4,column5 from (select rownum rn,column1,column2,column3,column4,column5 from (select column1,column2,column3,column4,column5 from table_name order by column desc) where rownum<=10) where rn>0"; */ //mysql实现分页 String sql="select * from person order by id desc limit ?,? "; conn=DBUtil.getUtil().getConnection(); try { ps=conn.prepareStatement(sql); ps.setInt(1, (pageNo-1) * pageSize); ps.setInt(2, pageSize); rs=ps.executeQuery(); List<Person> personList = new ArrayList<Person>(); while(rs.next()){ Person person=new Person(); person.setName(rs.getString("stu_name")); person.setPassword(rs.getString("stu_psw")); person.setNumber(rs.getString("stu_number")); person.setBirthday(rs.getDate("stu_birth")); person.setSex(rs.getInt("stu_sex")); person.setPolity(rs.getInt("stu_polity")); person.setBrief(rs.getString("stu_brief")); person.setType(rs.getInt("type")); person.setState(rs.getInt("state")); personList.add(person); } pageModel = new PageModel<Person>(); pageModel.setList(personList); pageModel.setTotalRecords(getTotalRecords(conn)); pageModel.setPageSize(pageSize); pageModel.setPageNo(pageNo); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { if(rs!=null){ rs.close(); } if(ps!=null){ ps.close(); } if(conn!=null){ conn.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return pageModel; } /** * 得到总记录数,私有方法,外部无法访问,本类中使用 * @param conn * @return */ private int getTotalRecords(Connection conn){ PreparedStatement ps = null; ResultSet rs = null; String sql="select count(*) from person"; conn=DBUtil.getUtil().getConnection(); int count=0; try { ps=conn.prepareStatement(sql); rs=ps.executeQuery(); while(rs.next()){ //此时根据sql语句查出的只有一列,否则不建议用int标识字段 count = rs.getInt(1); } } catch (SQLException e) { e.printStackTrace(); }finally{ try { if(rs!=null){ rs.close(); } if(ps!=null){ ps.close(); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } return count; } }
相关文章推荐
- 07_数据库创建,添加c3p0操作所需的jar包,编写c3p0-config.xml文件,编写User.java,编写jdbcUtils.java实现操作数据库的模板工具类,UserDao编写,Dao
- 利用Java的反射、泛型以及动态参数实现JDBC工具类
- Java中实现DataTable工具类,并利用其实现简单分页控件。
- java实现ssm分页工具类及其使用方法
- Java中实现DataTable工具类,并利用其实现简单分页控件。
- java(280)手写sorm之jdbcUtil工具类的实现
- 07_数据库创建,添加c3p0操作所需的jar包,编写c3p0-config.xml文件,编写User.java,编写jdbcUtils.java实现操作数据库的模板工具类,UserDao编写,Dao
- java纯jdbc连接mysql数据库实现增删查改 | 黄乔国PHP
- java工具类(七)实现给定任意年份和月份得出天数
- java分页工具类的使用方法
- 跟老紫竹学Java-留言板-服务接口的JDBC实现
- Java工具类实现校验邮箱地址的有效性
- 重点:java后端直接连接数据库实现查询获取结果 jdbc
- java JDBC、MySql、Servelet 加安卓前端实现注册功能
- Java 工具类 - JDBC通用操作基类 BaseDao
- Java代码实现真分页
- 利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现
- Java使用JDBC连接MySQL数据库,实现增删改查
- Android SQLite PhoneGap sencha touch 中调用Java原生程序,数据加载到页面,并实现滑动分页
- java中JDBC实现往MySQL插入百万级数据的实例代码