首先定义一个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 广东

最新文章

  1. Oracle经典SQL
  2. Vuejs——(2)Vue生命周期,数据,手动挂载,指令,过滤器
  3. SqlServer2012 数据库的同步之SQL JOB + 建立链接服务器
  4. at org.apache.catalina.loader.WebappClassLoader.loadClass问题处理
  5. 001-python基础
  6. Windows 7系统下局域网文件共享设置方法
  7. 一条带分页的sql
  8. 【android】android下的junit
  9. c语言函数---M
  10. 【Linux探索之旅】第一部分第四课:磁盘分区,并完成Ubuntu安装
  11. 【JZOJ4307】喝喝喝
  12. Git来操作GitHub~
  13. 解决@ResponseBody注解返回的json中文乱码问题
  14. 创建一个git仓库
  15. mock server 实现get方法的接口(二)
  16. 堆优化dijstra
  17. java-信息安全(十一)-非对称加密算法ECC
  18. FastAdmin CMS 插件下载
  19. jsfl 改变舞台宽高
  20. 端口模式(IN,OUT,INOUT,BUFFER)

热门文章

  1. AE开发关于OnMapReplaced方法的使用原理
  2. Oracle 11g 新特性 – HM(Hang Manager)简介
  3. codeforce Gym 100685E Epic Fail of a Genie(MaximumProduction 贪心)
  4. RabbitMQ Server的安装、配置及常用命令
  5. NSXMLParser
  6. .NET 中,编译器直接支持的数据类型称为基元类型(primitive type).基元类型和.NET框架类型(FCL)中的类型有直接的映射关系.
  7. javascript (六)DOM
  8. [bzoj]3436 小K的农场
  9. NOIP模拟赛 经营与开发 小奇挖矿
  10. 标准C++(3)重载