框架學習系列 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開發的方式
※框架學習系列 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主網映射