java 关于分页的实现
生活随笔
收集整理的這篇文章主要介紹了
java 关于分页的实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ?關于java實現分頁
轉自:http://www.cnblogs.com/slliang/archive/2012/08/22/2651053.html
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)*pageSizeString 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;} }?
轉載于:https://www.cnblogs.com/xiaow/p/4573852.html
總結
以上是生活随笔為你收集整理的java 关于分页的实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决 The word is not c
- 下一篇: DataTable筛选符合条件的Data