0th
接简洁版 SSM08, 这个案例没有解决多对一的关联查问
1th 第一种形式
拼 sql, 批改原来的 sql
原 sql
<!-- sql 要留神测试 -->
<select id="selectEmp" resultType="Emp">
select e.*, d.departname departname2 from emp e
where 1=1
<if test="empname!=null and empname!='' ">
and e.empname like '%${empname}%'
</if>
order by empid desc
</select>
为关联查问批改后 sql
<!-- sql 要留神测试 -->
<select id="selectEmp" resultType="Emp">
select e.*, d.departname departname2 from emp e
left outer join depart d on e.departid=d.departid
where 1=1
<if test="empname!=null and empname!='' ">
and e.empname like '%${empname}%'
</if>
order by empid desc
</select>
Emp bean 里减少 departname2 字段和 setter,getter 办法
private String departname2;
public String getDepartname2() {return departname2;}
public void setDepartname2(String departname2) {this.departname2 = departname2;}
2th for 循环依据外键关联查问
mapper.java 里减少
//************************* 关联查问罕用的一种形式
public Depart selectDepartById(Integer departid);
mapper.xml 里减少
<select id="selectDepartById" resultType="Depart">
select * from depart d where departid=${value}
</select>
emp bean 里减少 department 字段和 setter,getter 办法
private String departname;
setter 和 getter 办法的代码, 略.
controller 层代码如下
List<Emp> empList = empMapper.selectEmp(empname);
System.out.println(empList.size()+"-----------------------------------");
for (Emp emp : empList) {
//departid 在 emp 表里, 多对一, 外键在多的表中
// 依据 departid-- 查问 departname
Depart depart = empMapper.selectDepartById(emp.getDepartid());
emp.setDepartname(depart.getDepartname());
}
jsp 代码减少局部
<c:forEach items="${empList}" var="m">
<tr>
<td>
<input type="checkbox" name="ck" value="${m.empid}" />
</td>
<td>${m.empid}</td>
<td>${m.empname}</td>
<td>${m.empdesc}</td>
<td>${m.departid}</td>
<td>${m.departname}</td>
<td>${m.departname2}</td>
<td>${m.jobid}</td>
<td>${m.age}</td>
<td>${m.sex}</td>
<td>${m.birth}</td>
<td><input type="button" value="del" onclick="del(${m.empid})" /> </td>
<td><input type="button" value="update" onclick="update(${m.empid})" /> </td>
</tr>
</c:forEach>
以下两行是减少局部
<td>${m.departname}</td>
<td>${m.departname2}</td>
页面成果如图