最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mybatis輸入輸出映射問題解讀(共三種類型)

 更新時間:2026年04月21日 14:33:16   作者:繡花針  
MyBatis使用OGNL表達式解析對象字段值,使用#{}或${},#{}為占位符,${}用于SQL拼接,輸出resultMap時,若列名與POJO屬性名名不一致,需配置resultMap,使用<collection>標簽進行嵌套查詢,需指定collection的屬性名,參數(shù)傳遞格式:column=參數(shù)名=表字段

一、輸入parameterType輸出resultType類型

(resultType:列名和pojo中的屬性名要一致)

Mybatis使用ognl表達式解析對象字段的值,#{}或者${}括號中的值為pojo屬性名稱,

其中,#{}:占位符號,相對于?,${}:sql拼接符號,相對于String

select * from user where name = #{name};   會被動態(tài)解析為    select * from user where name = ?; 
select * from user where name = ${name}; 當我們傳遞參數(shù)"mark"時,會被解析 select * from user where name = "mark"; 
<!-- 1、resultType:如果要返回數(shù)據(jù)集合,只需設(shè)定為每一個元素的數(shù)據(jù)類型
		 2、 包裝的pojo取值通過 "."來獲取
	-->
	<select id="getUserByQueryVo" parameterType="queryvo" resultType="com.mark.pojo.User">
		<!-- SELECT * FROM USER WHERE username LIKE #{name} -->
		SELECT * FROM USER WHERE username LIKE '%${user.username}%'
	</select>

二、輸出resultMap(列名和pojo中的屬性名不一致)

resultMap包含元素

<!--column不做限制,可以為任意表的字段,而property須為type 定義的pojo屬性-->
<resultMap id="唯一的標識" type="映射的pojo對象">
  <id column="表的主鍵字段,或者可以為查詢語句中的別名字段" jdbcType="字段類型" property="映射pojo對象的主鍵屬性" />
  <result column="表的一個字段(可以為任意表的一個字段)" jdbcType="字段類型" property="映射到pojo對象的一個屬性(須為type定義的pojo對象中的一個屬性)"/>
 <!-- 一對一關(guān)聯(lián)-->
 <association property="pojo的一個對象屬性" javaType="pojo關(guān)聯(lián)的pojo對象">
    <id column="關(guān)聯(lián)pojo對象對應(yīng)表的主鍵字段" jdbcType="字段類型" property="關(guān)聯(lián)pojo對象的主席屬性"/>
    <result  column="任意表的字段" jdbcType="字段類型" property="關(guān)聯(lián)pojo對象的屬性"/>
  </association>
  <!-- 一對多關(guān)聯(lián)-->
  <!-- 集合中的property須為ofType定義的pojo對象的屬性-->
  <collection property="pojo的集合屬性" ofType="集合中的pojo對象">
    <id column="集合中pojo對象對應(yīng)的表的主鍵字段" jdbcType="字段類型" property="集合中pojo對象的主鍵屬性" />
    <result column="可以為任意表的字段" jdbcType="字段類型" property="集合中的pojo對象的屬性" />  
  </collection>
</resultMap>

如果collection標簽是使用嵌套查詢,<collection>標簽中的column:要傳遞給select查詢語句的參數(shù),如果傳遞多個參數(shù),格式為column=  {參數(shù)名1=表字段1,參數(shù)名2=表字段2} ;

格式如下:

<collection column="傳遞給嵌套查詢語句的字段參數(shù)" property="pojo對象中集合屬性" ofType="集合屬性中的pojo對象" select="嵌套的查詢語句" > 
 </collection>

userMapper實例

<mapper namespace="com.mark.mapper.userMapper">
    <!-- 
    定義resultMap
    type:resultMap最終映射的java對象類型,可以使用別名
    id:對resultMap的唯一標識
     -->
    <resultMap type="User" id="userResultMap">
        <!-- 
        column:查詢出來的列名
        property:type指定的pojo類型中的屬性名
        最終resultMap對column和property作一個映射關(guān)系(對應(yīng)關(guān)系)
         -->
        <!-- 主鍵用id -->
        <id column="id" property="id"/>
        <!-- 普通字段用result -->
        <!-- 單表查詢可以不寫全,關(guān)聯(lián)查詢必須寫全所有字段 -->
        <result column="user_name" property="username"/>
    </resultMap>
        <!-- 這里的resultMap要和<resultMap type="User" id="userResultMap">id一致 -->
        <select id="findUserByResultMap" parameterType="com.mark.po.UserQueryVo" resultMap="userResultMap">
        SELECT id, user_name FROM USER WHERE user.username=#{userCustom.username} 
    </select>
</mapper>

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot自定義路由覆蓋實現(xiàn)流程詳解

    SpringBoot自定義路由覆蓋實現(xiàn)流程詳解

    這篇文章主要介紹了SpringBoot自定義路由覆蓋實現(xiàn)流程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-01-01
  • Spring?零基礎(chǔ)入門WebFlux框架體系

    Spring?零基礎(chǔ)入門WebFlux框架體系

    Spring5發(fā)布有兩年了,隨Spring5一起發(fā)布了一個和Spring?WebMvc同級的Spring?WebFlux。這是一個支持反應(yīng)式編程模型的新框架體系。反應(yīng)式模型區(qū)別于傳統(tǒng)的MVC最大的不同是異步的、事件驅(qū)動的、非阻塞的,這使得應(yīng)用程序的并發(fā)性能會大大提高,單位時間能夠處理更多的請求
    2022-07-07
  • SpringBoot之瘦身部署問題

    SpringBoot之瘦身部署問題

    這篇文章主要介紹了SpringBoot之瘦身部署問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • SpringBoot如何使用@Cacheable進行緩存與取值

    SpringBoot如何使用@Cacheable進行緩存與取值

    這篇文章主要介紹了SpringBoot如何使用@Cacheable進行緩存與取值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Java 中Flyway的使用詳解

    Java 中Flyway的使用詳解

    這篇文章主要介紹了Java 中Flyway的使用詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • spring MVC中接口參數(shù)解析的過程詳解

    spring MVC中接口參數(shù)解析的過程詳解

    這篇文章主要給大家介紹了關(guān)于spring MVC中接口參數(shù)解析的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用spring mvc具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-07-07
  • Maven 搭建開發(fā)環(huán)境

    Maven 搭建開發(fā)環(huán)境

    這篇文章主要介紹了Maven 如何搭建開發(fā)環(huán)境,文中講解非常細致,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • Maven依賴junit?@Test報錯的解決方案

    Maven依賴junit?@Test報錯的解決方案

    這篇文章主要介紹了Maven依賴junit?@Test報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • IDEA創(chuàng)建Maven項目后報錯不出現(xiàn)src文件夾的情況解決

    IDEA創(chuàng)建Maven項目后報錯不出現(xiàn)src文件夾的情況解決

    最近剛開始學習maven,正準備使用idea創(chuàng)建一個maven項目練手,卻發(fā)現(xiàn)自己創(chuàng)建的maven項目始終沒有src目錄,下面這篇文章主要給大家介紹了關(guān)于IDEA創(chuàng)建Maven項目后報錯不出現(xiàn)src文件夾的情況解決,需要的朋友可以參考下
    2023-05-05
  • java jdk1.8 使用stream流進行l(wèi)ist 分組歸類操作

    java jdk1.8 使用stream流進行l(wèi)ist 分組歸類操作

    這篇文章主要介紹了java jdk1.8 使用stream流進行l(wèi)ist 分組歸類操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10

最新評論

镶黄旗| 新田县| 洱源县| 鹤庆县| 永胜县| 亳州市| 简阳市| 台安县| 汉川市| 喀什市| 左权县| 克东县| 章丘市| 开封市| 潮安县| 资中县| 天柱县| 昌吉市| 五峰| 桦南县| 江山市| 凤台县| 栾城县| 历史| 阜新| 读书| 玉环县| 仁怀市| 株洲市| 莲花县| 屯门区| 临颍县| 涿州市| 湛江市| 扎鲁特旗| 江津市| 大洼县| 布拖县| 凤山县| 和龙市| 福安市|