日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Mybatis(三) 映射文件详解

發(fā)布時間:2025/4/5 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mybatis(三) 映射文件详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

    前面說了全局配置文件中內容的詳解,大家應該清楚了,現(xiàn)在來說說這映射文件,這章就對輸入映射、輸出映射、動態(tài)sql這幾個知識點進行說明,其中高級映射(一對一,一對多,多對多映射)在下一章進行說明。

?

一、輸入映射

      輸入映射:配置statement中輸入?yún)?shù)的類型。有四種

      1.1、傳遞簡單類型,八大基本類型,比如int類型

          findUserById:根據(jù)id進行查詢對應user,那么傳入的就應該是int類型的值。所以使用別名int來映射傳入的值

            

      1.2、傳遞pojo(代表正常的對象,比如user的javabean對象)    

          insertUser:就是傳遞的User這個對象。

              

          注意:在使用pojo之后,#{xxx}。 xxx表示pojo對象中的屬性名。

      1.3、傳遞包裝pojo(其中放置的為集合,對象引用等)

          什么是包裝pojo?比如

            

         queryUserList

                 

          注意:user.username這個屬性的獲取,因為UserQueryVO是一個包裝pojo,其中有user的引用。而user中又有username的屬性,那么這樣一層層取過來用即可。

      1.4、傳遞hashmap

          這個也很簡單,理解了前面的,這個不難。

            

          注意:hashmap使用的是別名,mybatis中內置了。

?

二、輸出映射

      講解兩個東西。resultType和resultMap

            

      2.1、resultType

         這個沒什么好講解的,也就是查詢出來的結果的列名需要對應我們編寫的輸出映射類型中的屬性名,如果不匹配,則不能完成映射,那么查詢出來的結果也不能如愿的放入對應的對象中去。這個很正常,我們都知道。

      2.2、resultMap

         查詢出來的結果的列名不用對應我們編寫的輸出映射類型中的屬性名,也能夠完成映射。此時就需要resultMap來做這個事情了,使用一個案例來說明

         案例1.:查詢的sql語句使用了別名,如何將其與對應的對象的屬性進行映射?使用resultMap來完成???  

            

         分析:看懂了嗎?其實就是通過resultMap這個中介,來幫我們完成映射,本來是不能夠成功映射的,因為屬性名和列名不同,但是中間有了resultMap幫我們完成這個映射。就可以達到這種效果了,不過使用resultMap是比resultType更為繁瑣一點,但是也有其優(yōu)點,在進行高級映射時,更多的是使用resultMap,這里只是先體驗一下resutlMap的基本用法,在下一章講解高級映射時,會深化講解resultMap的用法。

?

三、動態(tài)sql

      這是個很有趣的東西,個人感覺挺好的。

      通過Mybatis提供的各種動態(tài)標簽實現(xiàn)動態(tài)拼接sql,使得mapper映射文件在編寫SQL時更加靈活,方便。常用動態(tài)SQL標簽有:if、where、foreach

      3.1、if和where

         if標簽用來判斷

            里面有test屬性,可以輸入判斷語句

         where標簽,處理條件是否輸入正確。如果沒有條件,就把自己干掉

         具體使用代碼來看看

          

?

      3.2、foreach

          

            

         注意:foreach中的open和close這兩個屬性,open:在遍歷之前將創(chuàng)建該字符串,一直遍歷,遍歷結束后,將close中的內容拼接上去。

?

      3.3、sql片段

           通俗點講,就是對動態(tài)sql的重用,將寫好的動態(tài)sql提取出來,然后在需要的地方進行調用。

           Sql片段要先定義后使用 

           

?

四、總結

        這章節(jié)也很簡單,具體又認識了一下映射文件中的一些配置,最主要是接觸到了兩個新的東西,輸出映射的resultMap和動態(tài)sql。其中resultMap并沒有講全,只是介紹了一下他的作用及最簡單的用法,具體的會在下一章節(jié)講解到。也就是高級映射。

?

《新程序員》:云原生和全面數(shù)字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的Mybatis(三) 映射文件详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。