Java分页内容实例详解
首先定义一个fruit表,表里含有很多数据:

定义一个数据文件:
public class Fruit {
public String getIds() {
return ids;
}
public void setIds(String ids) {
this.ids = ids;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public int getNumbers() {
return numbers;
}
public void setNumbers(int numbers) {
this.numbers = numbers;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
private String ids;
private String name;
private double price;
private String source;
private int numbers;
private String image;
}
定义一个数据连接访问:
import java.sql.*;
import java.util.*;
public class DBConnection {
private static String drv="com.mysql.jdbc.Driver";
private static String url="jdbc:mysql://127.0.0.1:3306/mydb?characterEncoding=GBK";
private static String uid="root";
private static String pwd="";
public static Connection getConnection() throws Exception{
Class.forName(drv);
Connection conn = DriverManager.getConnection(url,uid,pwd);
return conn;
}
}
import java.util.*;
import java.sql.*;
public class FruitDao {
private Connection conn;
private PreparedStatement stat;
private ResultSet rs; public FruitDao() throws Exception{
conn = DBConnection.getConnection();
}
//返回总页数
public int getPageCount(int pageSize) throws Exception{
int pageCount = 0;
//求总行数 rowCount
String sql = "select count(*) from fruit";
stat = conn.prepareStatement(sql);
rs = stat.executeQuery();
rs.next();
int rowCount = rs.getInt(1);
//求总页数 pageCount = (rowCount/pageSize)--进位
pageCount = (int)Math.ceil( 1.0*rowCount/pageSize);
conn.close();
return pageCount;
}
//返回指定页的数据
public ArrayList<Fruit> select(int pageSize,int pageNo) throws Exception{
ArrayList<Fruit> list = new ArrayList<Fruit>();
String sql = "select * from fruit limit ?,?"; //select TOP 2 * from Fruit where Ids NOT IN (SELECT TOP 4 Ids from fruit) 这是sqlserver的分页语句
stat = conn.prepareStatement(sql);
stat.setInt(1, (pageNo-1)*pageSize);
stat.setInt(2, pageSize); rs = stat.executeQuery(); while(rs.next()){
Fruit data = new Fruit();
data.setIds(rs.getString(1));
data.setName(rs.getString(2));
data.setPrice(rs.getDouble(3));
data.setSource(rs.getString(4));
data.setNumbers(rs.getInt(5));
data.setImage(rs.getString(6));
list.add(data);
}
conn.close(); return list;
}
//增删改查的方法....略
}
然后是界面文件:
import java.awt.print.Pageable;
import java.util.*;
public class Test {
private static final int PAGESIZE=2;
public static void main(String[] args) throws Exception {
int pageCount = new FruitDao().getPageCount(PAGESIZE);
System.out.println("一共"+pageCount+"页,每页"+PAGESIZE+"个"); ArrayList<Fruit> list = new FruitDao().select(PAGESIZE, 1); for(int i=0;i<list.size();i++){
System.out.println(list.get(i).getIds()+" "+list.get(i).getName()+list.get(i).getPrice()+list.get(i).getSource());
} } }
输出结果为:
一共4页,每页2个 k001 苹果 2.4 烟台
k002 菠萝 1.4 广东
Java分页内容实例详解的更多相关文章
- Java中JSON字符串与java对象的互换实例详解
这篇文章主要介绍了在java中,JSON字符串与java对象的相互转换实例详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JS ...
- Java中JSON字符串与java对象的互换实例详解(转)
http://www.jb51.net/article/90914.htm 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要 ...
- 我的书籍《深入解析Java编译器:源码剖析与实例详解》就要出版了
一个十足的技术迷,2013年毕业,做过ERP.游戏.计算广告,在大公司呆过,但终究不满足仅对技术的应用,在2018年末离开了公司,全职写了一本书<深入解析Java编译器:源码剖析与实例详解> ...
- java中List的用法和实例详解
java中List的用法和实例详解 List的用法List包括List接口以及List接口的所有实现类.因为List接口实现了Collection接口,所以List接口拥有Collection接口提供 ...
- 事件驱动模型实例详解(Java篇)
或许每个软件从业者都有从学习控制台应用程序到学习可视化编程的转变过程,控制台应用程序的优点在于可以方便的练习某个语言的语法和开发习惯(如.net和java),而可视化编程的学习又可以非常方便开发出各类 ...
- java 流操作对文件的分割和合并的实例详解_java - JAVA
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 java 流操作对文件的分割和合并的实例详解 学习文件的输入输出流,自己做一个小的示例,对文件进行分割和合并. 下面是代 ...
- 实例详解 Java 死锁与破解死锁
锁和被保护资源之间的关系 我们把一段需要互斥执行的代码称为临界区.线程在进入临界区之前,首先尝试加锁 lock(),如果成功,则进入临界区,此时我们称这个线程持有锁:否则呢就等待,直到持有锁的线程解锁 ...
- 这个贴子的内容值得好好学习--实例详解Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化
感觉要DJANGO用得好,ORM必须要学好,不管理是内置的,还是第三方的ORM. 最最后还是要到SQL.....:( 这一关,慢慢练啦.. 实例详解Django的 select_related 和 p ...
- 国际化,java.util.ResourceBundle使用详解
java.util.ResourceBundle使用详解 一.认识国际化资源文件 这个类提供软件国际化的捷径.通过此类,可以使您所编写的程序可以: 轻松地本地化或翻译成不同的 ...
随机推荐
- 修改wamp的数据库密码
方法/步骤 一:修改数据库密码 1.点开MySQL console进入数据库编辑框,然后按回车键,会出现图2的效果. 2.接着输入“use mysql” 下面提示“Database chang ...
- HDU 3001 Travelling (状压DP,3进制)
题意: 给出n<=10个点,有m条边的无向图.问:可以从任意点出发,至多经过同一个点2次,遍历所有点的最小费用? 思路: 本题就是要卡你的内存,由于至多可经过同一个点2次,所以只能用3进制来表示 ...
- 微软Bot Framework文档中,关于Sign-in Card的一处代码错误及更正
Bot Framework文档出错处网址:https://docs.botframework.com/en-us/csharp/builder/sdkreference/attachments.htm ...
- 全站变灰的CSS代码-适合特殊时刻哀悼
将下面CSS代码应用到HTML标签或者是BODY标签 filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.o ...
- python基础教程总结7——异常
1.Python异常类 Python是面向对象语言,所以程序抛出的异常也是类.常见的Python异常有: 异常 描述 NameError 尝试访问一个没有申明的变量 ZeroDivisionError ...
- HDU 5451 Best Solver(fibonacci)
感谢这道题让我复习了一遍线代,还学习了一些奇奇怪怪的数论. 令 二项展开以后根号部分抵消了 显然有 所以要求的答案是 如果n比较小的话,可以直接对二项式快速幂,但是这题n很大 这个问题和矩阵的特征值以 ...
- ArcGis server发布地图服务
ArcGIS server发布服务: 首先修改地图文档属性中的关联默认数据库 最后使用分享将地图服务发布到server上,是地图服务可以使用: 注意一定要勾选 Feature Access选项 fea ...
- Java执行系统命令工具类(JDK自带功能)
CommandUtil.java package utils; import java.io.ByteArrayOutputStream; import java.io.IOException; im ...
- 正确适配苹果ATS审核要求的姿势
首先,ATS的技术行为不会有任何变化(除了新增两个字段NSAllowsArbitraryLoadsInWebContent和NSRequiresCertificateTransparency,也就是更 ...
- Linux性能检测常用的10个基本命令
检测性能的10个命令汇总 uptim dmesg | tail vmstat 1 mpstat -P ALL 1 pidstat 1 iostat -xz 1 free -m sar -n DEV 1 ...