JDBC快速处理分页查询 Limit

JDBC快速处理分页查询 Limit

查询工人表中的数据
按照员工的工资降序排序,做一个分页查询

select * from work order by salary desc limit a,b;

a表示起始行索引(从0开始),b表示每页显示查询到的行数
a不能确定,动态表示页码,b行数可以确定也可以不确定

1、a不确定,b确定

每页显示给定的行数 比如每页显示5 行

	select * from work order by salary desc limit ?,5

		Scanner input = new Scanner(System.in);
		System.out.println("请输入需要查询页码数:");
		int page = input.nextInt();
		int start = (page-1)*5;

try {

   Class.forName("com.mysql.jdbc.Driver");
   String url = "jdbc:mysql://localhost:3306/gp2002";
   Connection conn=DriverManager.getConnection(url, "root", "root");
String sql ="select * from student order by salary desc limit ?,5;";
   
   PreparedStatement preparedStatement = conn.prepareStatement(sql);
   preparedStatement.setInt(1, start);

   ResultSet resultSet = preparedStatement.executeQuery();
2、a不确定,b也不确定

每页显示的行数 也不确定时

	select * from work order by salary desc limit ?,?
Scanner input = new Scanner(System.in);
System.out.println("请输入每页需要显示几条行数据:");
int b = input.nextInt();
System.out.println("请输入需要查询页码数:");
int page = input.nextInt();
int start = (page-1)*b;


try {

Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/gp2002";
Connection conn = DriverManager.getConnection(url, "root", "root");

String sql= "select * from student order by salary desc limit ?,?;";
PreparedStatement preparedStatement = conn.prepareStatement(sql);
preparedStatement.setInt(1, start);
preparedStatement.setInt(2, b);

ResultSet resultSet = preparedStatement.executeQuery();
原文地址:https://www.cnblogs.com/HW-CJY/p/13751676.html