思路:把属性值封装成Emp对象,把员工对象传递给插入数据的方法,然后利用对象的属性读取器get() 把属性值依次取出,然后传递PreparedStatement对象,再由其执行。
根据数据表建立员工类,类的属性要和表的字段保持一致,例如,属性empno。
查询出的结果集当中,每一条数据就是一个员工对象。
当进行结果集遍历的时候,利用每一条数据建立员工对象,然后把员工对象放置到集合中。
1.建立员工类Emp:

属性设置和get、set方法

重写toString方法
import java.sql.Date;
public class Emp {
// 让属性名和emp表的字段名一致,之后的框架可以保证把类和数据表关联
private int empno;
private String ename;
private String job;
private int mgr;
private Date hiredate;
private double sal;
private double comm;
private int deptno;
public int getEmpno() {
return empno;
}
public void setEmpno(int empno) {
this.empno = empno;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public int getMgr() {
return mgr;
}
public void setMgr(int mgr) {
this.mgr = mgr;
}
public Date getHiredate() {
return hiredate;
}
public void setHiredate(Date hiredate) {
this.hiredate = hiredate;
}
public double getSal() {
return sal;
}
public void setSal(double sal) {
this.sal = sal;
}
public double getComm() {
return comm;
}
public void setComm(double comm) {
this.comm = comm;
}
public int getDeptno() {
return deptno;
}
public void setDeptno(int deptno) {
this.deptno = deptno;
}
@Override
public String toString() {
return "Emp [empno=" + empno + ", ename=" + ename + ", job=" + job + ", mgr=" + mgr + ", sal=" + sal + ", comm="
+ comm + ", deptno=" + deptno + "]";
}
}
同包中的Test文件做如下操作:
// sql查询结果ps.executeQuery()装到结果集rs中
ResultSet rs = ps.executeQuery();
// 建立集合
List<Emp> elist=new ArrayList<Emp>();
while(rs.next()) {
// 结果集rs的内容赋值给多个变量
int empno = rs.getInt("empno");
String ename = rs.getString("ename");
String job = rs.getString("job");
int mgr = rs.getInt("mgr");
Date hiredate = rs.getDate("hiredate");
double sal = rs.getDouble("sal");
double comm = rs.getDouble("comm");
int deptno = rs.getInt("deptno");
// 建立Emp对象,用Emp类中的set方法把刚刚变量中存的数据放入Emp对象中
Emp e = new Emp();
e.setEmpno(empno);
e.setEname(ename);
e.setJob(job);
e.setMgr(mgr);
e.setHiredate(hiredate);
e.setSal(sal);
e.setComm(comm);
e.setDeptno(deptno);
// 把Emp对象e放入集合elist中封装
elist.add(e);
//错误输出方式:仅仅打印集合中对象的信息,无法在其他代码中应用集合对象:System.out.println(elist);
//正确输出方式:遍历
for(Emp t:elist) {
//System.out.println(t.toString());
//增加筛选条件
if(t.getJob().equalsIgnoreCase("clerk")) {
System.out.println(t.toString());//toString全部输出(仅为了查看数据)
System.out.println("员工编号:"+t.getEmpno()+",员工姓名:"+t.getEname()+",员工工资:"+t.getSal());
}
}
}