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

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

1、定义分页模型:PageModel

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

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

3、简历Admin的实体bean类:

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

4、测试调用:

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

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

java常用公共代码二之分页代码的实现的更多相关文章

  1. Java 常用API(二)

    目录 Java 常用API(二) 1. Object类 2. Date类 概述 构造方法和成员方法 3. DateFormat类 概述 SimpleDateFormat类 练习 4. Calendar ...

  2. java基础之JDBC二:原生代码基础应用

    JDBC的基础应用CURD: 增删改 public void noQuery() { Connection conn = null; Statement stat = null; try { //注册 ...

  3. Java常用类(二)String类详解

    前言 在我们开发中经常会用到很多的常用的工具类,这里做一个总结.他们有很多的方法都是我们经常要用到的.所以我们一定要把它好好的掌握起来! 一.String简介 1.1.String(字符串常量)概述 ...

  4. java常用设计模式十二:命令模式

    一.概述 定义:命令(Command)模式又叫作动作(Action)模式或事务(Transaction)模式,是一种对象的行为模式.将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化:对 ...

  5. java常用设计模式总览

    一.java的设计模式大体上分为三大类: 创建型模式(5种):工厂方法模式,抽象工厂模式,单例模式,建造者模式,原型模式. 结构型模式(7种):适配器模式,装饰器模式,代理模式,外观模式,桥接模式,组 ...

  6. java提高篇(十二)-----代码块

    在编程过程中我们可能会遇到如下这种形式的程序: public class Test { { //// } } 这种形式的程序段我们将其称之为代码块,所谓代码块就是用大括号({})将多行代码封装在一起, ...

  7. 分页技巧_改进JSP页面中的公共分页代码_实现分页时可以有自定义的过滤与排序条件

    分页技巧__改进JSP页面中的公共分页代码 自定义过滤条件问题 只有一个url地址不一样写了很多行代码 public>>pageView.jspf添加 分页技巧__实现分页时可以有自定义的 ...

  8. 分享非常有用的Java程序 (关键代码) (二)---列出文件和目录

    原文:分享非常有用的Java程序 (关键代码) (二)---列出文件和目录 File dir = new File("directoryName"); String[] child ...

  9. “全栈2019”Java第四十二章:静态代码块与初始化顺序

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

随机推荐

  1. .NET基本权限系统框架源代码

    DEMO下载地址: 百度网盘:http://pan.baidu.com/s/147ilj http://download.csdn.net/detail/shecixiong/5372895 一.开发 ...

  2. 【转】Vue v-bind与v-model的区别

    v-model 指令在表单控件元素上创建双向数据绑定,所谓双向绑定,指的就是我们在js中的vue实例中 的data与其渲染的dom元素上的内容保持一致,两者无论谁被改变,另一方也会相应的更新为相同的数 ...

  3. Java变量和运算符

    1.变量 变量概述 什么是变量?变量是一个内存中的小盒子(小容器),容器是什么?生活中也有很多容器,例如水杯是容器,用来装载水:你家里的大衣柜是容器,用来装载衣裤:饭盒是容器,用来装载饭菜.那么变量是 ...

  4. Bzoj1202/洛谷P2294 [HNOI2005]狡猾的商人(带权并查集/差分约束系统)

    题面 Bzoj 洛谷 题解 考虑带权并查集,设\(f[i]\)表示\(i\)的父亲(\(\forall f[i]<i\)),\(sum[i]\)表示\(\sum\limits_{j=fa[i]} ...

  5. Ocelot网关统一查看多个微服务asp.net core项目的swagger API接口

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 一.准备 前提需要下载安装consul,项目需要懂添加swagger 统一在网关中配置多个微服务的swagger,需要用到服务注册 ...

  6. MySQL 5.7 安装完成后,首次登陆的几个问题

    Server:CentOS 7.0 MySQL : 5.7.20 MySQL Community Server (GPL) 1.首次登陆后修改密码: 根据安装时的选择不同,有mysqld_safe用m ...

  7. TCP三次握手,什么情况下client会回复reset

    1. 现象 最近线上发现如下异常包, tcp三次握手期间,server端发送syn_ack,client回复了reset包: 问题:为什么client会回复reset? 2. 分析 参考linux2. ...

  8. 【HDU 6017】 Girls Love 233 (DP)

    Girls Love 233 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)To ...

  9. 批量 修改 android eclipse 项目名

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 最外层的 文件夹名字.

  10. [转]android中OnTouch和OnClick、 imagebutton的src和background有什么区别

    1.OnTouch和OnClick有何区别?   专业回答 1.onClick就传入一个View对象,而 onTouch要传入一个View 对象和 MotionEvent的对象2.onTouch对控件 ...