zoukankan      html  css  js  c++  java
  • java常用公共代码二之分页代码的实现

    在项目中,我们经常会写到一些公共的代码,来让开发人员调用,减少代码重复,下面,我就将一些常用到的公共类贴出来和大家分享!!

    二、分页代码实现:在项目中,分页是一个项目中必不可少的,它可以防止我们从数据库中进行大量数据查询时速度变慢,提高我们的查询效率

    1、定义分页模型:PageModel

    [java] view plain copy
     
    1. package com.common.page;  
    2.   
    3. import java.util.List;  
    4.   
    5. /** 
    6.  * 封装分页信息 
    7.  * @author Administrator 
    8.  * 
    9.  */  
    10. public class PageModel<E> {  
    11.   
    12.     //结果集  
    13.     private List<E> list;  
    14.       
    15.     //查询记录数  
    16.     private int totalRecords;  
    17.       
    18.     //每页多少条数据  
    19.     private int pageSize;  
    20.       
    21.     //第几页  
    22.     private int pageNo;  
    23.       
    24.     /** 
    25.      * 总页数 
    26.      * @return 
    27.      */  
    28.     public int getTotalPages() {  
    29.         return (totalRecords + pageSize - 1) / pageSize;  
    30.     }  
    31.       
    32.     /** 
    33.      * 取得首页 
    34.      * @return 
    35.      */  
    36.     public int getTopPageNo() {  
    37.         return 1;  
    38.     }  
    39.       
    40.     /** 
    41.      * 上一页 
    42.      * @return 
    43.      */  
    44.     public int getPreviousPageNo() {  
    45.         if (pageNo <= 1) {  
    46.             return 1;  
    47.         }  
    48.         return pageNo - 1;  
    49.     }  
    50.       
    51.     /** 
    52.      * 下一页 
    53.      * @return 
    54.      */  
    55.     public int getNextPageNo() {  
    56.         if (pageNo >= getBottomPageNo()) {  
    57.             return getBottomPageNo();  
    58.         }  
    59.         return pageNo + 1;    
    60.     }  
    61.       
    62.     /** 
    63.      * 取得尾页 
    64.      * @return 
    65.      */  
    66.     public int getBottomPageNo() {  
    67.         return getTotalPages();  
    68.     }  
    69.       
    70.     public List<E> getList() {  
    71.         return list;  
    72.     }  
    73.   
    74.     public void setList(List<E> list) {  
    75.         this.list = list;  
    76.     }  
    77.   
    78.     public int getTotalRecords() {  
    79.         return totalRecords;  
    80.     }  
    81.   
    82.     public void setTotalRecords(int totalRecords) {  
    83.         this.totalRecords = totalRecords;  
    84.     }  
    85.   
    86.     public int getPageSize() {  
    87.         return pageSize;  
    88.     }  
    89.   
    90.     public void setPageSize(int pageSize) {  
    91.         this.pageSize = pageSize;  
    92.     }  
    93.   
    94.     public int getPageNo() {  
    95.         return pageNo;  
    96.     }  
    97.   
    98.     public void setPageNo(int pageNo) {  
    99.         this.pageNo = pageNo;  
    100.     }  
    101. }  

    2、分页测试:在MySQL中建立admin表,里面有字段id、name、password

    3、简历Admin的实体bean类:

    [java] view plain copy
     
    1. package com.common.page;  
    2.   
    3. public class Admin {  
    4.     private int id;  
    5.     private String name;  
    6.     private String password;  
    7.     public int getId() {  
    8.         return id;  
    9.     }  
    10.     public void setId(int id) {  
    11.         this.id = id;  
    12.     }  
    13.     public String getName() {  
    14.         return name;  
    15.     }  
    16.     public void setName(String name) {  
    17.         this.name = name;  
    18.     }  
    19.     public String getPassword() {  
    20.         return password;  
    21.     }  
    22.     public void setPassword(String password) {  
    23.         this.password = password;  
    24.     }  
    25.   
    26. }  


    4、测试调用:

    [java] view plain copy
     
    1. package com.common.page;  
    2.   
    3. import java.sql.Connection;  
    4. import java.sql.PreparedStatement;  
    5. import java.sql.ResultSet;  
    6. import java.sql.SQLException;  
    7. import java.util.ArrayList;  
    8. import java.util.List;  
    9.   
    10. import com.common.db.DbUtil;  
    11.   
    12. public class Client {  
    13.     public static PageModel findAdmins(int pageNo,int pageSize){  
    14.         Connection conn=DbUtil.getConnection();  
    15.         String sql="select * from admin limit ?,?";  
    16.         PageModel pageModel=null;  
    17.         PreparedStatement pstm=null;  
    18.         ResultSet rs=null;  
    19.         Admin admin=null;  
    20.         List<Admin> list=new ArrayList<Admin>();  
    21.         try {  
    22.             pstm=conn.prepareStatement(sql);  
    23.             pstm.setInt(1, (pageNo-1)*pageSize);  
    24.             pstm.setInt(2, pageNo*pageSize);  
    25.             rs=pstm.executeQuery();;  
    26.             while(rs.next()){  
    27.                 admin=new Admin();  
    28.                 admin.setId(rs.getInt("a_id"));  
    29.                 admin.setName(rs.getString("a_name"));  
    30.                 admin.setPassword(rs.getString("a_pwd"));  
    31.                 list.add(admin);  
    32.             }  
    33.             ResultSet rs2=pstm.executeQuery("select count(*) from admin");  
    34.             int total=0;  
    35.             if(rs2.next()){  
    36.                 total=rs2.getInt(1);  
    37.             }  
    38.             pageModel=new PageModel();  
    39.             pageModel.setPageNo(pageNo);  
    40.             pageModel.setPageSize(pageSize);  
    41.             pageModel.setTotalRecords(total);  
    42.             pageModel.setList(list);  
    43.         } catch (SQLException e) {  
    44.             e.printStackTrace();  
    45.         }finally{  
    46.             DbUtil.close(conn);  
    47.             DbUtil.close(pstm);  
    48.             DbUtil.close(rs);  
    49.         }  
    50.         return pageModel;  
    51.     }  
    52.       
    53.     public static void main(String[] args) {  
    54.         PageModel pageModel=Client.findAdmins(2,4);  
    55.         List<Admin> list=pageModel.getList();  
    56.         for(Admin a:list){  
    57.             System.out.print("ID:"+a.getId()+",用户名:"+a.getName()+",密码:"+a.getPassword());  
    58.             System.out.println();  
    59.         }  
    60.         System.out.print("当前页:"+pageModel.getPageNo()+" ");  
    61.         System.out.print("共"+pageModel.getTotalPages()+"页  ");  
    62.         System.out.print("首页:"+pageModel.getTopPageNo()+" ");  
    63.         System.out.print("上一页:"+pageModel.getPreviousPageNo()+" ");  
    64.         System.out.print("下一页:"+pageModel.getNextPageNo()+" ");  
    65.         System.out.print("尾页:"+pageModel.getBottomPageNo()+" ");  
    66.         System.out.print("共"+pageModel.getTotalRecords()+"条记录");  
    67.         System.out.println();  
    68.     }  
    69.   
    70. }  


    这样分页效果就实现了,我们要实现分页效果,只要传入相应的参数和相应的数据库执行语句即可实现,希望大家能灵活运用。

  • 相关阅读:
    STM32 F4 DAC DMA Waveform Generator
    STM32 F4 General-purpose Timers for Periodic Interrupts
    Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式
    Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 httplib模块 django和web服务器整合 wsgi模块 gunicorn模块
    查看SQL Server服务运行帐户和SQL Server的所有注册表项
    Pycharm使用技巧(转载)
    SQL Server 2014内存优化表的使用场景
    Python第十天 print >> f,和fd.write()的区别 stdout的buffer 标准输入 标准输出 从控制台重定向到文件 标准错误 重定向 输出流和输入流 捕获sys.exit()调用 optparse argparse
    Python第七天 函数 函数参数 函数里的变量 函数返回值 多类型传值 函数递归调用 匿名函数 内置函数
    Python第六天 类型转换
  • 原文地址:https://www.cnblogs.com/grimm/p/6737198.html
Copyright © 2011-2022 走看看