ibatis多表查詢
我們先來看看這兩張表
表名:tbl_Student
字段:ID,NAME,CLASS_ID
表名:tbl_Class
字段:ID,NAME
很簡單的一個邏輯,班級下邊有很多學生。我們先對學生表做簡單的查詢。
Model
public class Student
{
private String id;
private String name;
private Stirng birth;
private String class_id;
.......................
}
StudentMapper.xml
<typeAlias alias="StudentClass" type="model.Student"></typeAlias>
<sql >
<![CDATA[
select ID,NAME,CLASS_ID
from tbl_Student
]]>
</sql>
<resultMap >
<result property="id" column="ID" />
<result property="name" column="NAME" />
<result property="class_id" column="CLASS_ID" />
</resultMap>
<select parameterClass="java.util.Map" resultMap="StudentMap">
<include ref />
</select>
但是我想加入班級名稱在裏麵呢?這個時候Student就不夠用了,我們需要用dto了。
Dto
public class StudentDto
{
private String id;
private String name;
private Stirng birth;
private String class_id;
private String class_name;
......................
}
在原有的StudentMapper.xml文件中加入一下內容:
<typeAlias alias="StudentDtoClass" type="dto.StudentDto"></typeAlias>
<resultMap >
<result property="id" column="ID" />
<result property="name" column="NAME" />
<result property="class_id" column="CLASS_ID" />
<result property="class_name" column="CLASS_NAME" />
</resultMap>
<sql >
<![CDATA[
select s.ID as id,s.NAME as name,s.CLASS_ID as class_id,c.name as class_name
from tbl_Student s,tbl_Class c
where s.class_id = c.id
]]>
</sql>
<select parameterClass="java.util.Map" resultMap="StudentDtoMap">
<include ref />
</select>
一定要注意寫as後麵的值,這樣才能一一對應起來,否則會報錯:未指定的列。
最後更新:2017-04-03 16:49:27