Java分页代码的实现
在项目中,分页是一个项目中必不可少的,它可以防止我们从数据库中进行大量数据查询时速度变慢,提高我们的查询效率
1、定义分页模型:PageModel
package com.common.page; import java.util.List; /** * 封装分页信息 * @author Administrator * */ public class PageModel<E> { //结果集 private List<E> list; //查询记录数 private int totalRecords; //每页多少条数据 private int pageSize; //第几页 private int pageNo; /** * 总页数 * @return */ public int getTotalPages() { return (totalRecords + pageSize - 1) / pageSize; } /** * 取得首页 * @return */ public int getTopPageNo() { return 1; } /** * 上一页 * @return */ public int getPreviousPageNo() { if (pageNo <= 1) { return 1; } return pageNo - 1; } /** * 下一页 * @return */ public int getNextPageNo() { if (pageNo >= getBottomPageNo()) { return getBottomPageNo(); } return pageNo + 1; } /** * 取得尾页 * @return */ public int getBottomPageNo() { 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 getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getPageNo() { return pageNo; } public void setPageNo(int pageNo) { this.pageNo = pageNo; } }
2、分页测试:在MySQL中建立admin表,里面有字段id、name、password
3、简历Admin的实体bean类:
package com.common.page; public class Admin { private int id; private String name; private String password; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
4、测试调用:
package com.common.page; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.common.db.DbUtil; public class Client { public static PageModel findAdmins(int pageNo,int pageSize){ Connection conn=DbUtil.getConnection(); String sql="select * from admin limit ?,?"; PageModel pageModel=null; PreparedStatement pstm=null; ResultSet rs=null; Admin admin=null; List<Admin> list=new ArrayList<Admin>(); try { pstm=conn.prepareStatement(sql); pstm.setInt(1, (pageNo-1)*pageSize); pstm.setInt(2, pageNo*pageSize); rs=pstm.executeQuery();; while(rs.next()){ admin=new Admin(); admin.setId(rs.getInt("a_id")); admin.setName(rs.getString("a_name")); admin.setPassword(rs.getString("a_pwd")); list.add(admin); } ResultSet rs2=pstm.executeQuery("select count(*) from admin"); int total=0; if(rs2.next()){ total=rs2.getInt(1); } pageModel=new PageModel(); pageModel.setPageNo(pageNo); pageModel.setPageSize(pageSize); pageModel.setTotalRecords(total); pageModel.setList(list); } catch (SQLException e) { e.printStackTrace(); }finally{ DbUtil.close(conn); DbUtil.close(pstm); DbUtil.close(rs); } return pageModel; } public static void main(String[] args) { PageModel pageModel=Client.findAdmins(2,4); List<Admin> list=pageModel.getList(); for(Admin a:list){ System.out.print("ID:"+a.getId()+",用户名:"+a.getName()+",密码:"+a.getPassword()); System.out.println(); } System.out.print("当前页:"+pageModel.getPageNo()+" "); System.out.print("共"+pageModel.getTotalPages()+"页 "); System.out.print("首页:"+pageModel.getTopPageNo()+" "); System.out.print("上一页:"+pageModel.getPreviousPageNo()+" "); System.out.print("下一页:"+pageModel.getNextPageNo()+" "); System.out.print("尾页:"+pageModel.getBottomPageNo()+" "); System.out.print("共"+pageModel.getTotalRecords()+"条记录"); System.out.println(); } }
这样分页效果就实现了,我们要实现分页效果,只要传入相应的参数和相应的数据库执行语句即可实现,希望大家能灵活运用。
Java分页代码的实现相关推荐
- java分页代码思路,记录--java 分页 思路 (hibernate关键代码)
有时会脑袋蒙圈,记录下分页的思路 下面代码是hibernate的分页,其分页就是从第几条数据为起点,取几条数据.比如在mysql中的limit(5,10)取的就是第6条到第10条 在下面代码中的pag ...
- Java分页代码(JFIS)
TpageList类 package jfis.util; import java.util.List; publicclass TPageList { private TPages ...
- JAVA分页代码实例
package com.hjf.web.view; public class PageUtil ... { private int pageSize;//每页显示的条数 pr ...
- Java 常用代码汇总
欢迎关注方志朋的博客,回复"666"获面试宝典 1. 字符串有整型的相互转换 String a = String.valueOf(2); //integer to numeric ...
- java代码大全及详解(Java 常用代码汇总)
1. 字符串有整型的相互转换 String a = String.valueOf(2); //integer to numeric string int i = Integer.parseInt(a) ...
- JAVA通用分页代码
写的通用分页代码: SQL存储过程代码: CREATE proc page ( @table_name varchar(100),--表名 @count int,--每页显示好多行 @page int ...
- java分页中显示更多_早期更多失败– Java 8
java分页中显示更多 快速失败或早期失败是一种软件工程概念,旨在通过在不应该发生的事情发生时立即停止执行来防止复杂问题的发生. 在之前的博客文章和演示中,我将详细介绍这种方法的优点,在此博客文章中, ...
- java分页插件PageHelper的内置list数据操作失败
问题描述: java分页插件PageHelper的内置list数据在hanlder处理器中获取失败,但是测试确通过了,如下图 但是测试代码成功 @ContextConfiguration(locati ...
- 常用公共代码二之分页代码的实现
在项目中,我们经常会写到一些公共的代码,来让开发人员调用,减少代码重复,下面,我就将一些常用到的公共类贴出来和大家分享!! 二.分页代码实现:在项目中,分页是一个项目中必不可少的,它可以防止我们从数据 ...
最新文章
- [Spring 深度解析]第6章 Spring的IoC容器系列
- 华云数字实名认证图片_华云数据与安宁完成产品兼容互认证 携手推出安宁安全邮件系统联合解决方案...
- 生成器与迭代器的区别
- 对付网络盗贼的三板斧
- POJ 3276 枚举+差分?
- PHP随机配菜_PHP+JS三级菜单联动菜单实现方法
- 文章已转移到“字符集编码与乱码”分类下
- 编写程序计算 sentence 中有多少个单词,并指出其中最长和最短的单词。如果有多个最长或最短的单词,则将它们全部输出。
- sql server tcp 信号灯超时时间已到_「图文详解」TCP为啥要3次握手和4次挥手?3次挥手不行吗?...
- 2.FactoryMethod-工厂方法模式
- 配置jboss,mysql,seam,eclipse步骤(一)
- 学习 trajectory.txt
- 怎么用linux给苹果手机降级,【教程】iPhone降级_iPhone系统怎么降级_手机中国
- 【Mac实用技巧】Mac如何修复YouTube视频黑屏现象?
- 2018年河南省高中计算机考试,【改革 】 2018年河南中考将采取4+6+1模式,高中自主招生已确定...
- win10音频服务器未修复,win10十月更新音频输出设备未安装错误修复教程
- 蓝牙语音芯片模块数传音频BLE选型 支持mp3播放外挂spiflash双模
- 腾讯地图实现微信小程序地图定位教程
- python之禅中文原文_Python之禅翻译
- 来认识一下Ning!
热门文章
- 《kafka中文手册》- 构架设计
- 赤兔ctcms2.0.9最新破解授权版|修复bug|采集入库规则自定义
- 记一次 Centos7 安装 lepus 天兔数据库监控系统 v3.8_beta
- matlab解方程实验,MATLAB实验一解线性方程组的直接法
- vue js根据生日计算年龄(包含阳历和农历)
- 已知法向量,某一向量投影到其平面,计算投影向量
- 批量将文本文件转换为语音文件,看书变成听书。
- Coins (多重背包)模板题
- STM32单片机(六)TIM定时器 -> 第一节:TIM定时中断
- 计算机网络(谢希仁)——第一章 概述(幕布笔记)