多對(duì)一單向關(guān)聯(lián)映射
public class Category {
private String id;// 類(lèi)別編號(hào)
private String name;// 類(lèi)別名稱(chēng)
}
public class User {
private String id;// 用戶(hù)編號(hào)
private String name;// 用戶(hù)名
private Integer age;// 年齡
private Category category;// 所屬類(lèi)別
}
配置方法一:
<resultMap id="userResultMap" type="User">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="age" column="age"/>
<result property="category.id" column="cid" />
<result property="category.name" column="cname" />
</resultMap>
<select id="selectById" parameterType="String" resultMap="userResultMap">
select u.id,u.name,u.age,c.id as cid,c.name as cname
from users u left join category c
on u.categoryid=c.id
where u.id=#{id}
</select>
配置方法二:
<resultMap id="userResultMap" type="User">
<id property="id" column="iD"/>
<result property="name" column="name"/>
<result property="age" column="age"/>
<association property="category" javaType="Category">
<id property="id" column="cid"/>
<result property="name" column="cname"/>
</association>
</resultMap>
<select id="selectById" parameterType="String" resultMap="userResultMap">
select u.id,u.name,u.age,c.id as cid,c.name as cname
from users u left join category c
on u.categoryid=c.id
where u.id=#{id}
</select>
配置方法三:
<resultMap id="userResultMap" type="User">
<id property="id" column="id"/>
<result property="name" column="name"/>
<result property="age" column="age"/>
<association property="category" javaType="Category"
resultMap="categoryResultMap"/>
</resultMap>
<resultMap id="categoryResultMap" type="Category">
<id property="id" column="cid"/>
<result property="name" column="cname"/>
</resultMap>
<select id="selectById" parameterType="String" resultMap="userResultMap">
select u.id,u.name,u.age,c.id as cid,c.name as cname
from users u left join category c
on u.categoryid=c.id
where u.id=#{id}
</select>
多對(duì)一/一對(duì)多雙向關(guān)聯(lián)映射
public class Category {
private String id;// 類(lèi)別編號(hào)
private String name;// 類(lèi)別名稱(chēng)
private List<User> users;// 用戶(hù)集合
}
public class User {
private String id;// 用戶(hù)編號(hào)
private String name;// 用戶(hù)名
private Integer age;// 年齡
private Category category;// 所屬類(lèi)別
}
配置方法一:
<resultMap id="categoryResultMap" type="Category">
<id property="id" column="cid" />
<result property="name" column="cname" />
<collection property="users" ofType="User">
<id property="id" column="id" />
<result property="name" column="name" />
<result property="age" column="age" />
</collection>
</resultMap>
<select id="selectById" parameterType="String" resultMap="categoryResultMap">
select c.id as cid,c.name as cname,u.id,u.name,u.age
from category c left join users u
on c.id=u.categoryid
where c.id=#{id}
</select>
配置方法二:
<resultMap id="categoryResultMap" type="Category">
<id property="id" column="cid"/>
<result property="name" column="cname"/>
<collection property="users" ofType="User"
resultMap="com.dao.UserDao.userResultMap"/>
</resultMap>
<select id="selectById" parameterType="String" resultMap="categoryResultMap">
select c.id as cid,c.name as cname,u.id,u.name,u.age
from category c left join users u
on c.id=u.categoryid
where c.id=#{id}
</select>