会自动映射,但如果定义的类成员与数据库的列名不同时,就需要手动添加映射:
当sql语句查询的结果是仅仅一张表,如:
<select id="find" parameterType="User1" resultType="user1">
select * from user
<where>
<!-- <if test="sex!=null and sex!=''">
sex=#{sex}
</if> -->
<!-- <if test="username !=null and username!=''">
and username like #{username}
</if> -->
<if test="id !=null and id!=''">
or id =
<foreach collection="QueryVo" separator="," open="(" close=")">
#{user.id}
</foreach>
</if>
</where>
</select>
order类:
public class Order implements Serializable{
@Override
public String toString() {
return "Order [id=" + id + ", userId=" + userId + ", number=" + number + ", createtime=" + createtime
+ ", note=" + note + ", user=" + user + "]";
}
private static final long serialVersionUID = 1L;
private Integer id;
private Integer userId;
private String number;
private Date createtime;
private String note;
private User1 user;
数据库列名:
这里发现数据库中的user_id与类成员userId不一致,所以就需要手动映射:
<resultMap type="demo1.Order" id="order">
<!--column:数据库列名,property:类成员名称 -->
<id column="user_id" property="userId"/>
</resultMap>
<select id="selectAll" resultMap="order"><!-- 与上面resultMap标签的id要一致 -->
select id,user_id,number,createtime,note from orders
</select>
注意:
<resultMap type=“demo1.Order” id=“order”->
<!-column:数据库列名,property:类成员名称 -->
<-id column=“user_id” property=“userId”/>
<-/resultMap>
<-select id=“selectAll” resultMap=“order”><-- 与上面resultMap标签的id要一致 -->
select id,user_id,number,createtime,note from orders
<-/select>