java(2014)实现对mysql数据库分页的代码
package util; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List; /**
* @author Hongyu
*
* @param <T>
*/
public class Pagination<T> {
// 当前页
private Integer nowPage;
// 页面要显示信息条数
private Integer pageSize;
// 根据页面显示的条数计算总页数
private Integer countPage;
// 根据传入的数据库查询数据库中的信息的条数
private Integer total;
// 向数据库查询时的开始的下标
private Integer startIndex;
// 向数据库查询时的查询条数
private Integer endIndex; // 将查询到的数据存放到这里
private List<T> rows; public Pagination(Integer nowPage, Integer pageSize, String tableName) {
// 赋值
this.nowPage = nowPage;
this.pageSize = pageSize; // 判断当前页是否合法
if (this.nowPage < 1) {
this.nowPage = 1;
} // 向数据库发送查询,查询出指定表格的数据的总数
this.total = this.getCountSize(tableName);
// 计算总页数
this.countPage = this.total % this.pageSize == 0 ? this.total
/ this.pageSize : this.total / this.pageSize + 1; if (this.nowPage > this.countPage) {
this.nowPage = this.countPage;
} //System.out.println("pagenation中的nowPage==========" + this.nowPage);
// 计算出开始的记录下标,和每页要显示的条数 if (this.nowPage == 0) {
this.startIndex = this.nowPage * this.pageSize;
this.endIndex = this.pageSize;
} else {
this.startIndex = (this.nowPage - 1) * this.pageSize;
this.endIndex = this.pageSize;
} /*System.out.println(this.startIndex + "======pagenation中的开始和结束========"
+ this.endIndex+"====================总页数"+countPage);
*/
} // 根据提供的表名向数据库发送请求,计算指定数据表中的数据总条数
public Integer getCountSize(String tableName) {
int countRecord = 0;
String sql = "select count(*) as c from " + tableName;
Connection conn = JdbcUtil.getConn();
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
if (rs.next()) {
countRecord = rs.getInt("c");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
JdbcUtil.release(rs, pstmt);
}
return countRecord;
} public List<T> getRows() {
return rows;
} public void setRows(List<T> rows) {
this.rows = rows;
} public Integer getStartIndex() {
return startIndex;
} public Integer getEndIndex() {
return endIndex;
} public Integer getTotal() {
return total;
} }
java(2014)实现对mysql数据库分页的代码的更多相关文章
- Java如何实现对Mysql数据库的行锁
场景如下: 用户账户有余额,当发生交易时,需要实时更新余额.这里如果发生并发问题,那么会造成用户余额和实际交易的不一致,这对公司和客户来说都是很危险的. 那么如何避免: 网上查了下,有 ...
- 用shell 实现对MySQL数据库分页
参考链接 http://mp.weixin.qq.com/s?__biz=MzAxMzE4MDI0NQ==&mid=208299533&idx=1&sn=4cab00793eb ...
- 实现对MySQL数据库进行分库/分表备份(shell脚本)
工作中,往往数据库备份是件非常重要的事情,毕竟数据就是金钱,就是生命!废话不多,下面介绍一下:如何实现对MySQL数据库进行分库备份(shell脚本) Mysq数据库dump备份/还原语法: mysq ...
- C++实现对MySQL数据库的连接,以及增删改查
安装好MySQL,建好数据表的前提下. 如果只是想简单实现添加数据或者其他一个操作数据,可以参考另一篇博客. https://www.cnblogs.com/ming-4/p/11544514.htm ...
- 利用shell脚本实现对mysql数据库的备份
#!/bin/bash #保存备份个数 number=3 #备份保存路径 backup_dir=/root/mysqlbackup #日期 dd=`date +%Y%m%d` #备份工具 tool=m ...
- c++简单实现对mysql数据库操作
1.连接数据库 #include <mysql.h> #include <iostream> #include<string> #include<vector ...
- 【mysql】备份篇2:使用java程序定期备份mysql数据库
承接备份篇1, 在备份篇1中,使用dat文件加+系统计划任务程序完成mysql定期备份任务 在这一篇,备份使用java程序定期备份mysql数据库. 下面代码和程序思想给出: package com. ...
- Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问
本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这 ...
- Statement和PreparedStatement的特点 MySQL数据库分页 存取大对象 批处理 获取数据库主键值
1 Statement和PreparedStatement的特点 a)对于创建和删除表或数据库,我们可以使用executeUpdate(),该方法返回0,表示未影向表中任何记录 b)对于创建和 ...
随机推荐
- 20160130.CCPP体系详解(0009天)
程序片段(01):hanoi.c+汉诺塔.c 内容概要:汉诺塔 ///hanoi.c #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> ...
- Comparator与Comparable的异同
同 它们都是Java的一个接口,都是用来实现集合中元素的比较.排序. 异 Comparator位于java.util下: Comparable位于java.lang下: Comparable(可比较的 ...
- 【转】Eclipse常用快捷键
原文网址:http://denver.blog.51cto.com/272871/52219 编辑相关快捷键 1.[Alt+/] 为用户提供内容的辅助. 2.[Ctrl+O] 显示类中方法和属性的大纲 ...
- 为Linux版本Oracle 11gR2配置HugePage
HugePage是Oracle在Linux版本下一种性能优化手段.对于共享内存区域(SGA)的数据库系统,Oracle通常都推荐在操作系统层面配置上HugePage,为Oracle实例准备更大的可用共 ...
- ssh 或者 scp 无需输入密码的解决办法
这里假设主机A(192.168.100.3)用来获到主机B(192.168.100.4)的文件. 在主机A上执行如下命令来生成配对密钥: ssh-keygen -t rsa 遇到提示回车默认即 ...
- 基于jQuery的AJAX和JSON的实例
通过jQuery内置的AJAX功能,直接访问后台获得JSON格式的数据,然后通过jQuer把数据绑定到事先设计好的html模板上,直接在页面上显示. 我们先来看一下html模板: ...
- hdu 4381(背包变形)
题意: 给定n个块,编号从1到n,以及m个操作,初始时n个块是白色. 操作有2种形式: 1 ai xi : 从[1,ai]选xi个块,将这些块涂白. 2 ai xi:从[ai,n]选xi个块,将这些块 ...
- Nodejs_day02
Nodejs的事件模块 var events = require('events'); var eventEmitter = new events.EventEmitter();//创建EventEm ...
- 一个c++剧情脚本指令系统
项目希望能够实现一些剧情动画,类似角色移动,镜头变化,台词展现等.剧情动画这东西随时需要修改调整,不能写死在代码里.考虑之后认为需要做一个简单的DSL来定制剧情脚本,策划在脚本里按顺序写入命令,然后我 ...
- 迭代的模块itertools
itertools模块提供的全部是处理迭代功能的函数,他们的返回值不是list,而是迭代对象,只有在for循环的时候才会真正去计算. 使用迭代器的好处是在循环的时候才去取值,而直接返回值为list的结 ...