java分页工具封装
来源:互联网 发布:linux eclipse 快捷键 编辑:程序博客网 时间:2024/06/06 04:52
分页是每个项目都会用到的,所以它的重要性不言而喻,这里整理一套封装好的分页工具,在项目中直接使用就好。
一、分页分析
首先应该了解分页查询语句(MySQL为例):
select * from table_testLIMIT -- 分页查询关键字0, -- 从第几条数据开始查询数据【(当前页数-1)* 每页显示的条数】10; -- 每页显示的条数
页面显示的分页工具的形式:**当前页 1/10 首页 上一页 每页显示 10 下一页 末页**
看到前面的信息可以总结出需要往后台传递的数据是:当前页,每页显示条数
二、封装工具类
这里的工具类其实首先是一个分页的bean,因为我们要传递的数据不是一个,所以用一个PageBean封装分页属性:
public class PageBean<T>{ private int currentPage = 1; //当前页,默认是第一页 private int pageCount = 10; //每页显示的条数,默认是10条 private int totalPage; //总页数 private int totalCount; //数据总条数 private List<T> pageData; //查询到的数据对象集合 //省略getter、setter方法 …… //主要说一下总页数的getter方法 public int getTotalPage(){ //计算公式:总记录数%每页显示条数=0时 if(totalCount % pageCount == 0){ totalPage = totalCount / pageCount; }else{ //计算公式:总记录数%每页显示条数!=0时 totalPage = totalCount / pageCount + 1; } return totalPage; }}
三、使用分页工具
封装好PageBean之后就可以在项目中直接使用了,在Dao层封装分页查询的方法,传入PageBean就可以了
public void getAll(PageBean<T> pb){ //为PageBean对象的属性赋值 //1、查询总记录数,放入totalCount int totalCount = this.getTotalCount(); pb.setTotalCount(totalCount); //2、处理当当前页是第一页和最后一页时的问题 if(pb.getCurrentPage() <= 0){ //如果当前页不大于0,显示第一页 pb.setCurrentPage(1); }else if(pb.getCurrentPage() > pb.getTotalPage()){ //如果当前页大于最大页数,显示最后一页 pb.setCurrentPage(pb.getTotalPage()); } //获取当前页,查询数据 int currentPage = pb.getCurrentPage(); //查询的起始行 int index = (currentPage - 1) * pb.getPageCount(); //每页显示的条数 int count = pb.getPageCount(); //查询的sql语句 String sql = "select * from table_test LIMIT ?,?"; try{ //使用dbutil组件 //创建QueryRunner对象 QueryRunner qr = new QueryRunner(); //查询当前页数据 //QueryRunner对象的query方法参数说明: //第一个:查询的sql //第二个:查询的返回结果,直接使用接口中声明好的BeanListHandler就行,注意是泛型,具体到业务的时候指定具体的泛型类型 //第三个:这个参数是一个可变参数,就是传入sql语句中占位符的实参 List<T> pageData = qr.query(sql, new BeanListHandler<T>(T.class),index,count); pb.setPageData(pageData); }catch(Exception e){ throw new RuntimeException(); }}//查询总记录数的方法public int getTotalCount(){ String sql = "select count(*) from table_test"; try{ //这里使用DbUtils组件,如果有不清楚的可以+QQ:3393055745 //创建QueryRunner对象 QueryRunner qr = new QueryRunner(); //QueryRunner的query方法传入的两个参数: //第一个:查询sql //第二个:使用接口封装好的对象就可以,这里使用的对象的意思是返回查询结果的第一条数据 Long count = qr.query(sql,new ScalarHandler<Long>()); return count.intValue(); }catch(Exception e){ throw new RuntimeException(); }}
查询方法封装好之后就是从前台页面传数据了,剩下的就是jsp和后台数据的交互了,就不介绍了。。。
1 0
- java分页工具封装
- 分页的封装工具类
- java 分页封装类
- java 封装工具类
- Java封装自定义工具
- 封装一分页的工具类
- 商城之分页工具类封装
- Java数据分页通用封装
- java分页工具类
- java分页工具
- java 分页工具类
- java分页工具类
- java分页工具类
- Java 分页工具类
- Java-List分页工具
- java分页工具类
- Java常见工具类封装
- java封装redis工具类
- linux 重写Tomcat启停脚本
- Android中使用Java开源库Javassist动态创建字节码的学习研究
- TTL和CMOS集成电路输入端接电阻的两种情况
- 判断邮件地址是否合法
- SpringMVC mvc:interceptor拦截器配置
- java分页工具封装
- spark运维问题记录
- eclipse 新建maven web项目
- 1007. 素数对猜想 (20)
- Oracle HowTo:如何快速杀死占用过多资源(CPU,内存)的数据库进程
- linux简单命令
- c3p0在spring中的配置
- linux进程调度(1)
- 电脑用HDMI线分屏后,耳机或音箱没声音之完美解决!