J2se(8)
分页显示数据
----------------------------------
利用JTable实现增删改查
当数据表的数据特别多的情况下,一个窗体显示不下,就需要分页显示数据
在SQLServer数据库,查询前三条数据
select top 3 * from 表; --top关键字只能在SQLServer中使用
--------------------------------------------------------
在MySQL查询前三条数据
*********************************************************
JTable-----下标是从0开始
ResultSet-------下标是从1开始
数据库中的数据表----------------下标是从0开始
*********************************************************
select * from 表名称 limit 开始下标 , 查询几条数据;
select * from inf2 limit 0,3;
*********************************************************************
假设每一页显示3条数据,
当前是第1页; select * from inf2 limit 0 , 3;
当前是第2页: select * from inf2 limit 3 , 3
当前是第3页: select * from inf2 limit 6 , 3
当前是第4页: select * from inf2 limit 9 , 3
当前是第N页: select * from inf2 limit ? , 3
开始下标的公式: (当前页-1)* 每页显示的条数
统计数据表中,一共有几条数据? select count(*) from 表 -------maxCount;
这些数据一共可以分几页?
maxCount---数据表中的数据总数
size = 3; -----显示的时候,每一页显示3条数据
最多可以显示多少页 = maxCount % size == 0 ? maxCount /size: maxCount/size+1;
int maxPage = 18 % 3 ==0 ?18/3 :18 / 3+1 ;
做数据分页查询,必须知道四个数据:
1、当前是第几页
2、每一页显示几条数据
3、数据表一共有几条数据
4、最多可以分成多少页
编写类,用于保存分页的相关信息
class Pagination
private int index=1; //当前页
private int size=3;//默认每一页显示3条数据
private int maxCount;//一共有几条数据
//这些数据最多可以分成多少页
public int getMaxPage(){
return maxCount % size==0?maxCount/size:maxCount/size+1;
}
分页的步骤:
1、编写分页类 Pagination
class Pagination
private int index=1; //当前页
private int size=3;//默认每一页显示3条数据
private int maxCount;//一共有几条数据
//这些数据最多可以分成多少页
public int getMaxPage(){
return maxCount % size==0?maxCount/size:maxCount/size+1;
}
2、 在窗体类中,创建一个全局变量 Pagination用于保存分页的信息
3、在Dao类,编写一个方法,查询数据表中,一共有几条数据
4、在窗体类中,调用dao方法,得到数据表的数据总数,并且保存到分页对象中
5、修改Dao类中的,getResult方法,让它接收一个分页对象作为参数
public ResultSet getResult(){
return .....
}
6、修改窗体类中的代码,在查询数据的时候,把Pagination传递到Dao的方法中
-----------------------------------------------------------------------
只要当前页可以改变,查询的数据就会不同