當前位置:
首頁 > 知識 > 框架學習系列 mybatis 第十一篇 映射文件之輸入映射

框架學習系列 mybatis 第十一篇 映射文件之輸入映射

本節主要內容

1: mapper映射文件輸入映射(輸入類型)

2:總結&下節預告

本文是《凱哥陪你學系列-框架學習之mybatis框架學習》中第十一篇 mapper映射文件之輸入映射

一: mapper映射文件輸入映射(輸入類型)

1.1:mapper.xml文件中那個是輸入映射(輸入類型)?

其中paramenterType就是輸入類型。

輸入類型有:

簡單類型、POJO類型、map類型等。下面我們將一一進行講解

1.2:簡單類型

簡單類型就是常見的。如int/stirng等可以參考入門程序中,根據用戶id查詢用戶信息的映射(或者看上圖)

1.3 POJO類型

1.3.1 簡單的pojo類型(單一的。屬性是簡單的而非對象或是集合的)

簡單pojo類型作為輸入參數,可以參考入門程序中,保存用戶的那一篇文章。或是如下圖:

1.3.2:複雜類型的pojo類型(對象中屬性是另外一個對象或者是集合)

1:需求

假設入門程序中的用戶都是一個班級的(班級包括老師、學校、班級、年級等很多信息。):

資料庫中數據:

想模糊查詢用戶是凱哥的都有哪些?

思考這個怎麼處理?

可以創建一個綜合查詢的vo類

對應mapper文件:

測試類:

輸出結果:

說明:

在這個查詢語句中,入參是UserVo這個pojo對象。

所以$其實就是獲取到UsereVo對象中的user這個屬性。

而我們知道在UserVo這個對象中的user屬性是一個User對象。同時還知道User對象中有個屬性是username。

所以這裡的$其實就是獲取到UserVo對象中user屬性中的username屬性值。

也就是說:在使用複雜的POJO類型作為入參的時候,是可以通過連點的方式獲取到對象屬性中的屬性值。

注意:${}中必須是該對象對應屬性的屬性名稱。不能寫錯

1.4:map作為入參

mapper配置文件寫法:

mapper介面類:

測試類:

運行結果:

說明:

如果使用map作為入參的時候,對應mapper文件獲取值的時候,需要根據map的key進行獲取。

如果key不存在會怎麼樣?

比如:在mapper文件中的查詢sql語句添加 and sex=$ 而這個是入參的map中沒有sex這個key

執行後,不會出錯。執行sql的時候如果map中沒有這個key,也就是更加key獲取的時候為空。會將這個空值賦值給sql語句。如下:

注意:

如果map的key在其他配置文件中也存在相同的名字,有可能導致獲取值的時候錯誤。

比如:還記得全局配置文件中,資料庫配置db.propertiees文件中:

有個username這個key。

那麼如果把測試測試map這個方法中,usernames這個key換成usernam會怎麼樣?同時修改mapper.xml文件中對應的key

執行:

我們發現,列印出的sql語句username是root而不是凱哥。這個root是db.properties中的啊

所以,在這裡需要注意!

二:總結

通過本篇學習,需要掌握(重要!很重要!!必須掌握)

1:parameterType傳遞簡單類型、簡單pojo類型怎麼處理

2:傳遞複雜(或者包裝)POJO對象的時候怎麼處理

3:傳遞map的時候怎麼處理以及使用map的時候需要注意什麼

下節預告:

本節學了parameterType可以傳遞的類型。那麼下節課我們將學習returnType的類型

框架學習系列 mybatis 第十篇 全局配置文件 一

框架學習系列 mybatis 第九篇 Mapper代理方式

框架學習系列 mybatis 第八篇 dao開發的方式

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 凱哥java 的精彩文章:

框架學習系列 mybatis 第十篇 全局配置文件 一
框架學習系列 mybatis 第九篇 Mapper代理方式
框架學習系列 mybatis 第八篇 dao開發的方式
框架學習系列 mybatis 第七篇 插入資料庫後返回主鍵
框架學習系列 mybatis 第六篇 入門程序之插入數據1

TAG:凱哥java |

您可能感興趣

實現mybatis框架SQL映射文件SQL片段
mybatis與spring整合:Dao層映射配置
Hibernate 映射枚舉Enum 類型的屬性
零示例學習中的映射域遷移 (projection domain shift) 問題
MyBatis框架之SQL映射和動態SQL
kali Linux信息收集-網路映射工具Nmap
Occipital推出MR創作工具Bridge Engine,實現密實3D映射
將2D圖像人物實時映射3D模型,Facebook開源DensePose技術
Linux內存映射mmap原理分析
深入淺出MyBatis:「映射器」全了解
Photoshop使用漸變映射調出唯美夕陽美景
Intel主板的布局,系統的內存映射
使用IDAPython自動映射二進位文件替換默認函數名
linux下簡單好用的工具rinetd,實現埠映射/轉發/重定向
Coca-Cola:碳酸飲料映射出的流行文化與藝術。
Magic Leap系統為多人MR共享增加映射融合特性
三星對Galaxy S8/S9的Bixby鍵開放重新映射功能
動動手指 Bepal Pro S 硬體錢包輕鬆實現EOS一鍵映射
神作Revive再更新,Index手柄可良好映射Rift按鍵
BigOne將支持EOS主網映射