JDBC——结果集传到集合的思路

思路:把属性值封装成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());
                    }
                }
            }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容