一.BaseDao的适用场合
只有当查询语句是针对单表,且不包含外键字段的时候,才能调用BaseDao中的getList()和getBean()
开发规范: 如果表中有外键,那么在该表对应的实体类中,要将外键映射成一个对象的属性,此时如果查询语句中有外键字段,就不能调用getList()和getBean()了
当查询语句中有外键时,就要自己手动处理结果集
while(rs.next()){
//遍历当前行的每一列
Emp emp=new Emp();
emp.setEmpno(rs.getInt("empno"));
emp.setEname(rs.getString("ename"));
emp.setSal(rs.getDouble("sal"));
//将外键值封装到部门对象的部门编号属性上
Dept dept=new Dept();
dept.setDeptno(rs.getInt("deptno"));
//建立员工和部门对象的关联
emp.setDept(dept);
//把员工添加到集合中
list.add(emp);
}
二.多表连接查询的结果集处理
多个表连接查询时,需要将查询中的字段分别封装成n个对象(n>=2),
再建立n个对象的关联
while(rs.next()){
//遍历当前行的每一列
Emp emp=new Emp();
emp.setEmpno(rs.getInt("empno"));
emp.setEname(rs.getString("ename"));
emp.setSal(rs.getDouble("sal"));
//将外键值封装到部门对象的部门编号属性上
Dept dept=new Dept();
dept.setDeptno(rs.getInt("deptno"));
dept.setDname(rs.getString("dname"));
//建立员工和部门对象的关联
emp.setDept(dept);
//把员工添加到集合中
list.add(emp);
}