BaseDao的适用场合+多表连接查询的结果集处理

一.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);		
			}

猜你喜欢

转载自blog.csdn.net/qq_41532872/article/details/86750637