網站首頁 編程語言 正文
目錄
1.對一映射
2.對多映射
3.多表映射總結
1)多表映射優化
- 對一:屬性中包含對方對象
- 對多:屬性中包含對方對象集合
1.對一映射
需求:根據ID查詢訂單,以及訂單關聯的用戶的信息!
<!-- 創建resultMap實現“對一”關聯關系映射 -->
<!-- id屬性:通常設置為這個resultMap所服務的那條SQL語句的id加上“ResultMap” -->
<!-- type屬性:要設置為這個resultMap所服務的那條SQL語句最終要返回的類型 -->
<resultMap id="selectOrderWithCustomerResultMap" type="order">
<!-- 先設置Order自身屬性和字段的對應關系 -->
<id column="order_id" property="orderId"/>
<result column="order_name" property="orderName"/>
<!-- 使用association標簽配置“對一”關聯關系 -->
<!-- property屬性:在Order類中對一的一端進行引用時使用的屬性名 -->
<!-- javaType屬性:一的一端類的全類名 -->
<association property="customer" javaType="customer">
<!-- 配置Customer類的屬性和字段名之間的對應關系 -->
<id column="customer_id" property="customerId"/>
<result column="customer_name" property="customerName"/>
</association>
</resultMap>
<!-- Order selectOrderWithCustomer(Integer orderId); -->
<select id="selectOrderWithCustomer" resultMap="selectOrderWithCustomerResultMap">
SELECT order_id,order_name,c.customer_id,customer_name
FROM t_order o
LEFT JOIN t_customer c
ON o.customer_id=c.customer_id
WHERE o.order_id=#{orderId}
</select>
對應關系:
關鍵詞:
在“對一”關聯關系中,我們的配置比較多,但是關鍵詞就只有:association和javaType
2.對多映射
需求:查詢客戶和客戶關聯的訂單信息!
<!-- 配置resultMap實現從Customer到OrderList的“對多”關聯關系 -->
<resultMap id="selectCustomerWithOrderListResultMap"
type="customer">
<!-- 映射Customer本身的屬性 -->
<id column="customer_id" property="customerId"/>
<result column="customer_name" property="customerName"/>
<!-- collection標簽:映射“對多”的關聯關系 -->
<!-- property屬性:在Customer類中,關聯“多”的一端的屬性名 -->
<!-- ofType屬性:集合屬性中元素的類型 -->
<collection property="orderList" ofType="order">
<!-- 映射Order的屬性 -->
<id column="order_id" property="orderId"/>
<result column="order_name" property="orderName"/>
</collection>
</resultMap>
<!-- Customer selectCustomerWithOrderList(Integer customerId); -->
<select id="selectCustomerWithOrderList" resultMap="selectCustomerWithOrderListResultMap">
SELECT c.customer_id,c.customer_name,o.order_id,o.order_name
FROM t_customer c
LEFT JOIN t_order o
ON c.customer_id=o.customer_id
WHERE c.customer_id=#{customerId}
</select>
對應關系:
關鍵詞:
在“對多”關聯關系中,同樣有很多配置,但是提煉出來最關鍵的就是:“collection”和“ofType”
3.多表映射總結
1)多表映射優化
我們可以將autoMappingBehavior設置為full,進行多表resultMap映射的時候,可以省略符合列和屬性命名映射規則(列名=屬性名,或者開啟駝峰映射也可以自定映射)的result標簽!
修改mybati-sconfig.xml:
<!--開啟resultMap自動映射 -->
<setting name="autoMappingBehavior" value="FULL"/>
修改teacherMapper.xml
<resultMap id="teacherMap" type="teacher">
<id property="tId" column="t_id" />
<!-- 開啟自動映射,并且開啟駝峰式支持!可以省略 result!-->
<!-- <result property="tName" column="t_name" />-->
<collection property="students" ofType="student" >
<id property="sId" column="s_id" />
<!-- <result property="sName" column="s_name" />-->
</collection>
</resultMap>
2)多表映射總結
原文鏈接:https://blog.csdn.net/weixin_69134926/article/details/136486871
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-07-18 Pod創建多個容器并訪問指定容器
- 2022-09-03 C#中DataSet、DataTable、DataRow數據的復制方法_C#教程
- 2022-10-03 iOS?Objective-c實現左右滑動切換頁面_IOS
- 2022-11-08 Python??Pandas教程之使用?pandas.read_csv()?讀取?csv_pytho
- 2023-05-22 pytorch的Backward過程用時太長問題及解決_python
- 2023-03-18 git?push?origin?HEAD:refs/for/master?的意思分析_其它綜合
- 2022-04-28 C++實現班級成績管理系統_C 語言
- 2023-06-19 Docker?查詢、停止、刪除和重啟容器的詳細過程_docker
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支