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

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

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

一、輸入parameterType輸出resultType類型

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

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

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

select * from user where name = #{name};   會被動態(tài)解析為    select * from user where name = ?; 
select * from user where name = ${name}; 當(dāng)我們傳遞參數(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="唯一的標(biāo)識" 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標(biāo)簽是使用嵌套查詢,<collection>標(biāo)簽中的column:要傳遞給select查詢語句的參數(shù),如果傳遞多個參數(shù),格式為column=  {參數(shù)名1=表字段1,參數(shù)名2=表字段2} ;

格式如下:

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

userMapper實(shí)例

<mapper namespace="com.mark.mapper.userMapper">
    <!-- 
    定義resultMap
    type:resultMap最終映射的java對象類型,可以使用別名
    id:對resultMap的唯一標(biāo)識
     -->
    <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)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

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

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

    這篇文章主要介紹了SpringBoot自定義路由覆蓋實(shí)現(xiàn)流程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    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進(jìn)行緩存與取值

    SpringBoot如何使用@Cacheable進(jìn)行緩存與取值

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

    Java 中Flyway的使用詳解

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

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

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

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

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

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

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

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

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

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

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

最新評論

科技| 吉首市| 武穴市| 甘德县| 巴彦县| 松阳县| 巴彦县| 曲麻莱县| 班戈县| 平远县| 宝山区| 太仆寺旗| 连江县| 呼伦贝尔市| 恩平市| 抚松县| 湖南省| 水富县| 芜湖县| 科尔| 平江县| 伊金霍洛旗| 油尖旺区| 香港| 霍城县| 株洲县| 淮滨县| 三台县| 嘉义县| 乾安县| 灵寿县| 商都县| 体育| 大冶市| 古田县| 综艺| 江安县| 祥云县| 江山市| 绍兴县| 凤阳县|