MyBatis多對多的兩種處理方式
1.將一方作為成員加入多方
一次性查出
mapper.xml
<select id="findOrder" resultMap="odermap">
select orders.id, orders.user_id as userId, orders.number,
orders.createtime as createTime,orders.note,
user.username, user.birthday, user.sex, user.address, user.id as uid
from orders
left join user
on orders.user_id=user.id
</select>
<resultMap type="order" id="odermap">
<id column="id" property="id"/>
<result column="userId" property="userId"/>
<result column="number" property="number"/>
<result column="createtime" property="createTime"/>
<result column="note" property="note"/>
<association property="user" javaType="user">
<id column="uid" property="id"/>
<result column="username" property="username"/>
<result column="birthday" property="birthday"/>
<result column="sex" property="sex"/>
<result column="address" property="address"/>
</association>
</resultMap>
2.新建類繼承一方並將多方存入list
一次性查出
mapper.xml
<select id="findUserAndOrders" resultMap="findUserAndOrdersMap">
select user.*,orders.id as oid,user_id,number,createtime,note from user left join orders on user.id=orders.user_id where orders.user_id is not null </select>
<resultMap type="UserAndOrders" id="findUserAndOrdersMap">
<id column="id" property="id"/>
<result column="username" property="username"/>
<result column="birthday" property="birthday"/>
<result column="sex" property="sex"/>
<result column="address" property="address"/>
<collection property="orders" ofType="order">
<id column="id" property="id"/>
<result column="user_id" property="userId"/>
<result column="number" property="number"/>
<result column="createtime" property="createTime"/>
<result column="note" property="note"/>
</collection>
</resultMap>
分多次查出
<select id="findUserAndOrderById" resultMap="findUserAndOrdersByIdMap">
select distinct user.* from user left join orders on user.id=orders.user_id where orders.user_id is not null and user.id=#{id}
</select>
<select id="findOrder" resultType="order">
select * from orders where user_id=#{user_id}
</select>
<resultMap type="UserAndOrders" id="findUserAndOrdersByIdMap">
<id column="id" property="id"/>
<result column="username" property="username"/>
<result column="birthday" property="birthday"/>
<result column="sex" property="sex"/>
<result column="address" property="address"/>
<collection property="orders" select="findOrder" column="user_id=id" ofType="order">
</collection>
</resultMap>
相關文章
- #MyBatis多表查詢 #多對一、一對多的兩種實現方式 @FDDLCMyBatis
- Mybatis一對多、多對一處理MyBatis
- mybatis一對多&&多對一處理MyBatis
- 多對一處理 和一對多處理的處理
- 多工處理方式之一:多程式
- php 與 nginx 的兩種處理方式PHPNginx
- MyBatis表關聯 一對多 多對一 多對多MyBatis
- 多工處理方式之二:多執行緒執行緒
- mybatis的一對多,多對一,以及多對對的配置和使用MyBatis
- Mybatis【一對多、多對一、多對多】知識要點MyBatis
- C#轉義字元的兩種處理方式C#字元
- MyBatis07-(多對一、一對多)MyBatis
- Mybatis傳遞多個引數的4種方式(乾貨)MyBatis
- Java多執行緒13:讀寫鎖和兩種同步方式的對比Java執行緒
- 關於多執行緒的兩種實現方式執行緒
- 3種方式實現python多執行緒併發處理Python執行緒
- 不明原因的約束報錯的兩種處理方式
- 多執行緒的建立 兩種方式以及使用建議執行緒
- mybatis基礎03(介面中的多個引數處理)MyBatis
- mybatis+oracle 批次插入多條資料的處理方法MyBatisOracle
- Mybatis09_一對一、一對多、多對多、延遲載入MyBatis
- java中多執行緒併發的處理方式Java執行緒
- 幀動畫的多種實現方式與效能對比動畫
- 多執行緒-多執行緒兩種方式的圖解比較及區別執行緒圖解
- mybatis入門基礎(六)----高階對映(一對一,一對多,多對多)MyBatis
- MyBatis中主鍵回填的兩種實現方式MyBatis
- mybatis中一對多對映,但兩張表id相同怎麼辦?MyBatis
- 【Python】python 多執行緒兩種實現方式Python執行緒
- 安裝Zabbix(多種方式)
- Locust 多種執行方式
- 【java】【多執行緒】建立執行緒的兩種常用方式(2)Java執行緒
- JS中的多種繼承方式JS繼承
- CSS中的多種居中方式CSS
- MySQL多種需求的備份方式MySql
- 在springboot中使用Mybatis Generator的兩種方式Spring BootMyBatis
- 做大資料必須瞭解的多種處理框架大資料框架
- linux中cp複製時處理軟連結的兩種方式Linux
- Java多種寫檔案方式Java