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使用详解 一.认识国际化资源文件 这个类提供软件国际化的捷径.通过此类,可以使您所编写的程序可以: 轻松地本地化或翻译成不同的 ...
随机推荐
- 有关mybatis的动态sql
一般地,实现动态SQL都是在xml中使用等标签实现的. 我们在这里使用SQL构造器的方式, 即由abstract sql写出sql的过程, 当然感觉本质上还是一个StringBuilder, 来手动生 ...
- Java的日期类和日期格式化类
日期类: Date date = new Date(); // 获取当前的系统时间 2 System.out.println("年份:"+ date.getYear()); Cal ...
- 标签input的value属性和placeholderde 区别
placeholder 顾名思义是一个占位符 在你的value为空的时候他才会显示出来,但是他本身并不是value,也不会被表单提交.
- iOS 设置随意屏幕旋转
方法一,通过控制器继承或分类实现: 在UITabBarController 的子类或分类中实现 - (BOOL)shouldAutorotate { return [self.selectedView ...
- 【转】Windows 邮件槽(MailSlot)
Windows 邮件槽(MailSlot) 来自<Windows网络编程第二版 中文版> 优点:通过网络,将一条消息广播给一台或多台计算机. 缺点:只允许从客户机到服务器,建立一种不可 ...
- 设置通过Maven创建的工程的JDK的版本,更改conf/settings.xml
eclipse提示警告如下: Build path specifies execution environment J2SE-1.5. There are no JREs installed in t ...
- 【差分约束】poj1275Cashier Employment
比较经典的差分约束 Description A supermarket in Tehran is open 24 hours a day every day and needs a number of ...
- 拓展jQuery的serialize(),将form表单转化为json对象
jQuery 的 serialize() 方法经常会报 Uncaught TypeError: JSON.serializeObject is not a function 的错误, 原装的方法真的一 ...
- paper:synthesizable finit state machine design techniques using the new systemverilog 3.0 enhancements之全0/1/z/x的SV写法
- 这五本Python急速入门必读的书,送给正在学习Python的你!
书籍是人类进步的阶梯,这句话从古至今都是适用的.为什么会这么说呢?书籍,它记录了人们实践的经验,这些经验有助于我们快速的学习,对于编程学习来说也不例外,今天就给大家带来了以下的书籍干货,希望能够帮助到 ...