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();