基于实体类实现分页数据封装
Tip:“limit” 是MySQL的“方言”,不同数据库厂商有不同的实现
Employee.java
package com.imooc.jdbc.hrapp.entity;
/**
* 员工实体类
* @author CubeMonkey
* @create 2020-10-12 14:12
*/
public class Employee {
/**
* 1. 具备默认构造函数
* 2. 属性私有
* 3. 存在getter 与 setter
*/
private Integer eno;
private String ename;
private Float salary;
private String dname;
public Employee() {
}
public Employee(Integer eno, String ename, Float salary, String dname) {
this.eno = eno;
this.ename = ename;
this.salary = salary;
this.dname = dname;
}
public Integer getEno() {
return eno;
}
public void setEno(Integer eno) {
this.eno = eno;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public Float getSalary() {
return salary;
}
public void setSalary(Float salary) {
this.salary = salary;
}
public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname;
}
@Override
public String toString() {
return "Employee{" +
"eno=" + eno +
", ename='" + ename + '\'' +
", salary=" + salary +
", dname='" + dname + '\'' +
'}';
}
}
PageniationCommand.java
package com.imooc.jdbc.hrapp.command;
import com.imooc.jdbc.goodapp.common.DBUtils;
import com.imooc.jdbc.hrapp.entity.Employee;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 分页查询员工数据
* @author CubeMonkey
* @create 2020-10-12 14:15
*/
public class PaginationCommand implements Command {
@Override
public void execute() {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入页号:");
int page = scanner.nextInt();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
List<Employee> list = new ArrayList<Employee>();
try {
conn = DBUtils.getConnection();
String sql = "select * from employee limit ?, 10";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, (page-1)*10);
rs = pstmt.executeQuery();
while(rs.next()){
int eno = rs.getInt("eno");
String ename = rs.getString("ename");
Float salary = rs.getFloat("salary");
String dname = rs.getString("dname");
list.add(new Employee(eno, ename, salary, dname));
}
System.out.println(list.size());
System.out.println(list);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtils.closeConnection(rs, pstmt, conn);
}
}
}