一对一:
第一:在一中的类添加另外一个类作为属性。如(在Order类中添加private User orderUser;)
第二:在mapper.xml配置关联。(mapper接口不变)
XML
<!-- resultMap标签:解决查询结果字段名和实体类属性名不致的问题; 解决多表查询关联映射 -->
<resultMap id="orderMap" type="实体类(全限定名)">
<!--配置:查询结果和Order类的映射关联 -->
<id column="实体类id" property="id"></id>
<result column="字段" property="实体类字段"></result>
<!-- 配置:1对1查询
配置 : 查询结果和User类的映射关联
autoMapping="true"表示字段与属性实体类名字相同自动复制。
如果遇到不相同的用<result></result>关联
-->
<association property="mapper中函数返回值类型" javaType="属性实体类(全限定名)" autoMapping="true">
<id column="属性实体id" property="id"></id>
<result column="属性实体表中字段名" property="属性实体中属性名"></result>
</association>userName
</resultMap>
<!-- 根据订单编号,查询订单信息及下单人信息 -->
<select id="mapper中函数名" resultMap="mapper中函数返回值类型">
<!-- 双表联查。 -->
</select>
一对多
第一:在一中的类添加另外一个类作为集合属性。如(在User(一)类中添加
private List<Order> orders(多);)
第二:在mapper.xml配置关联。(mapper接口不变)
XML
<!--配置多表查询映射关系-->
<resultMap id="mapper函数返回值" type="实体类(一)全限定名" autoMapping="true">
<!--配置: 查询结果和User类的映射-->
<id column="表(一)id字段" property="实体类id"></id>
<result column="字段" property="实体类(一)属性"></result>
<!--配置:1对多关系-->
<collection property="实体类(多)"
javaType="java.util.List"
ofType="实体类(多)全限定名">
<!--配置:查询结果和Order类的映射-->
<id column="表(多)id字段" property="实体类(多)id"></id>
<result column="表(多)字段名" property="实体类(多)属性"></result>
</collection>
</resultMap>
<!--根据用户id,查询用户信息和下单信息-->
<select id="mapper函数名" resultMap="mapper函数返回值">
<!--连表查询。-->
</select>