多对一单向关联映射
public class Category {
private String id;// 类别编号
private String name;// 类别名称
}
public class User {
private String id;// 用户编号
private String name;// 用户名
private Integer age;// 年龄
private Category category;// 所属类别
}
配置方法一:
<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>
多对一/一对多双向关联映射
public class Category {
private String id;// 类别编号
private String name;// 类别名称
private List<User> users;// 用户集合
}
public class User {
private String id;// 用户编号
private String name;// 用户名
private Integer age;// 年龄
private Category category;// 所属类别
}
配置方法一:
<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>
网友评论