`
webcode
  • 浏览: 5978102 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

常用公共代码二之分页代码的实现

 
阅读更多

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

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

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上百实例源码以及开源项目源代码

    Y坐标、得到X坐标,Y坐标值、绘制火焰效果Image…… Java加密解密工具集 JCT v1.0源码包 5个目标文件 内容索引:JAVA源码,综合应用,JCT,加密解密 WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。...

    phpWeChat微信公共号开发框架 v1.0.1.rar

     phpWeChat高度集成了微信公共号的自动回复、菜单管理、素材管理、模板消息、粉丝管理、微信支付等常用接口,您只需一个函数或2/3行代码即可实现原本需要很费时费力才能开发的功能。  6、phpWeChat也是一个PC...

    NET公共类库[转发]

    系统设计之公共类库 ?Data Class Name File Function SQL访问基础类 SqlHelper.cs 执行带参数SQL,非带参数SQL,存储过程等语句 Access操作辅助类 JetAccess.cs Access的新建,压缩,加密等数据库文件操作 Oledb操作辅助...

    AOD使用指南常用方法指导

    AOD常用方法对数据的的公共连接,手写代码的查寻,分页显示,修改,删除等等能的实现很方便(asp专用)

    phpWeChat微信公共号开发框架 v1.1.6.zip

    phpWeChat高度集成了微信公共号的自动回复、菜单管理、素材管理、模板消息、粉丝管理、微信支付等常用接口,您只需一个函数或2/3行代码即可实现原本需要很费时费力才能开发的功能。 6、phpWeChat也是一个PC(网站)...

    基于若依的vue2 模板项目,已封装部分公共组件

    该模板项目已经封装了一些常用的公共组件,对于常用功能进行了二次封装开发,从而提高了开发效率。 该模板项目支持json化配置表单,这意味着开发者可以通过简单的配置,快速生成表单页面。不需要手写html代码,这...

    phpWeChat核心框架,帮您迅速创建一个PC网站+微信公共号

    phpWeChat高度集成了微信公共号的自动回复、菜单管理、素材管理、模板消息、粉丝管理、微信支付等常用接口,您只需一个函数或2/3行代码即可实现原本需要很费时费力才能开发的功能。 6、phpWeChat也是一个PC(网站)...

    phpWeChat网站+微信公共号开发框架 v1.1.6 微信公众平台

    phpWeChat高度集成了微信公共号的自动回复、菜单管理、素材管理、模板消息、粉丝管理、微信支付等常用接口,您只需一个函数或2/3行代码即可实现原本需要很费时费力才能开发的功能。 6、phpWeChat也是一个PC(网站)...

    JAVA上百实例源码以及开源项目

     WDSsoft的一款免费源代码 JCT 1.0,它是一个Java加密解密常用工具包。 Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书  Java局域网通信——飞鸽传书源代码,大家都知道VB...

    .NET公共类库(.NET 2.0)

    分页类 反射辅助类 浏览器辅助类 序列化功能辅助类 Session封装 Smtp邮件辅助类 字符串实用类 类型转换类 用户实用类 验证码类 验证实用类 XML处理基类 数据出库处理类 常用类方法 网页界面功能类 UBB代码辅助类 ...

    phpWeChat微信公众号开发框架

    phpWeChat高度集成了微信公共号的自动回复、菜单管理、素材管理、模板消息、粉丝管理、微信支付等常用接口,您只需一个函数或2/3行代码即可实现原本需要很费时费力才能开发的功能。 6、phpWeChat也是一个PC(网站)...

    asp.net知识库

    ASP.NET 2.0使用Web Part创建应用程序之二(共二) 体验 .net2.0 的优雅(2) -- ASP.net 主题和皮肤 NET2.0系列介绍(一).NET 2.0 中Web 应用程序主题的切换 ASP.NET 2.0 中Web 应用程序主题的切换 2.0正式版中...

    MF00364-信息化快速开发框架源码.zip

    管理组件,自动升级组件,各种常用的商业控件(分页控件、组合查询控制、图片浏览控件等),多语言支持, 强大的基于本框架的代码生成器,丰富的基础类库与开发辅助工具、内置MiNiWeb浏览器等各基础常用功能组 件...

    邮件发送 poi 二维码 条形码等java常用的工具类

    该工具为个人整理修改的常用工具类,maven结构,Java语言编写详细依赖间pom文件,如有冲突自行修改, 包括条形码操作工具、二维码操作、图片验证码工具、动态密码工具、雪花算法id工具、签名工具、poi导出、json转换...

    java开源包8

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    phpWeChat微信公共号开发框架

    phpWeChat高度集成了微信公共号的自动回复、菜单管理、素材管理、模板消息、粉丝管理、微信支付等常用接口,您只需一个函数或2/3行代码即可实现原本需要很费时费力才能开发的功能。 6、phpWeChat也是一个PC(网站)...

    java开源包10

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    phpWeChat网站+微信公共号开发框架

    phpWeChat高度集成了微信公共号的自动回复、菜单管理、素材管理、模板消息、粉丝管理、微信支付等常用接口,您只需一个函数或2/3行代码即可实现原本需要很费时费力才能开发的功能。 6、phpWeChat也是一个PC(网站)...

    ASP.NET3.5从入门到精通

    9.6.4 DataList 分页实现 9.6.5 使用SQLHelper 操作数据库 9.7 小结 第 10 章访问其他数据源 10.1 使用ODBC .NET Data Provider 第一篇窗口与界面编程 15 10.1.1 ODBC .NET Data Provider 简介 10.1.2 建立连接 10.2...

Global site tag (gtag.js) - Google Analytics