多表查询
1.多表查询的sql语句需要我们自己编写 连接查询
2.自己设计存储数据的实体类 承接多个表查询的结果
3.自己定义结果集映射 resultMap
对一 属性中包含对方的对象 private Customer customer
对多 属性中包含对方的对象集合 private List orderList
<typeAliases>
<package name="com.dc.pojo"/> <!--对类起别名-->
</typeAliases>
//起别名后
com.dc.mapper.Order 可以直接写为 order
自定义映射(对一查询) association
<resultMap id="orderMap" type="order">
<!--主键-->
<id column="order_id" property="orderId"></id>
<!--普通列-->
<result column="order_name" property="orderName"></result>
<result column="order_id" property="customerId"></result>
<!--
对象属性: property 对象属性名
javaType 对象类型
-->
<association property="customer" javaType="customer">
<id column="customer_id" property="customerId"></id>
<result column="customer_name" property="customerName"></result>
</association>
</resultMap>
<select id="queryOrderById" resultMap="orderMap">
select * from t_order tor join t_customer tur
on tor.customer_id=tur.customer_id
where tor.order_id=#{
id};
</select>
自定义映射(对多查询) collection
<resultMap id="customerMap" type="customer">
<id column="customer_id" property="customerId"></id>
<result column="customer_name" property="customerName"></result>
<!--
collection: 给集合属性赋值
property 集合属性名
ofType 集合的泛型类型
-->
<collection property="orderList" ofType="order">
<id column="order_id" property="orderId"></id>
<result column="order_name" property="orderName"></result>
<result column="customer_id" property="customerId"></result>
<!--不需要再给private Customer customer赋值,否则产生循环-->
</collection>
</resultMap>
<select id="queryList" resultMap="customerMap">
select * from t_order tor join t_customer tur
on tor.customer_id=tur.customer_id
</select>
```prism language-java
<setting name="autoMappingBehavior" value="FULL"/> <!--开启后,resultMap中的result标签可以不写,会自动映射-->
<resultMap id="customerMap" type="customer">
<id column="customer_id" property="customerId"></id>
<collection property="orderList" ofType="order">
<id column="order_id" property="orderId"></id>
</collection>
</resultMap>
<select id="queryList" resultMap="customerMap">
select * from t_order tor join t_customer tur
on tor.customer_id=tur.customer_id
</select>
原文链接: https://blog.csdn.net/qq_53568730/article/details/135448831