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

mybatis中映射文件include標(biāo)簽的應(yīng)用

 更新時(shí)間:2021年11月26日 10:29:45   作者:如山似水0_0  
這篇文章主要介紹了mybatis中映射文件include標(biāo)簽的應(yīng)用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

mybatis映射文件include標(biāo)簽應(yīng)用

在這里插入圖片描述

MyBatis中sql標(biāo)簽定義SQL片段,include標(biāo)簽引用,可以復(fù)用SQL片段可以使用標(biāo)簽提取出來,在使用的地方使用標(biāo)簽引用即可.sql標(biāo)簽中id屬性對(duì)應(yīng)include標(biāo)簽中的refid屬性。通過include標(biāo)簽將sql片段和原sql片段進(jìn)行拼接成一個(gè)完整的sql語句進(jìn)行執(zhí)行。

具體用法如下:

1.引用同一個(gè)xml中的sql片段

<sql id="sqlid">
    res_type_id,res_type
</sql>
<select id="selectbyId" resultType="com.property.vo.PubResTypeVO">
    select
    <include refid="sqlid"/>
    from pub_res_type
</select>

2.引用公用的sql片段

include標(biāo)簽中也可以用property標(biāo)簽,用以指定自定義屬性。在sql標(biāo)簽中通過${}取出對(duì)應(yīng)的屬性值

<select id="queryPubResType" parameterType="com.property.vo.PubResTypeVO" resultMap="PubResTypeList">
    select  a.res_type_id,
    <include refid="com.common.dao.FunctionDao.SF_GET_LNG_RES_TYPE">
        <property name="AI_RES_TYPE_ID" value="a.res_type_id"/>
        <property name="lng" value="#{lngId}"/>
        <property name="female" value="'女'"/>
    </include> as res_type
    from    pub_res_type a
</select>

3.對(duì)于多個(gè)xml文件需要同時(shí)引用一段相同的

在某個(gè)xml 中定義這個(gè) sql 代碼片段,在需要引用的地方使用全稱引用即可,例子如下:

ShareMapper.xml

<mapper namespace="com.company.ShareMapper">       
    <sql id="someSQL">
       id,name
    </sql>          
</mapper>

CustomMapper.xml

<mapper namespace="com.company.CustomMapper">       
    <select id="selectSome" >
        select
       <include refid="com.company.ShareMapper.someSQL"/>
        from t
    </select>          
</mapper>

使用resultType進(jìn)行輸出映射,只有查詢出來的列名和pojo中的屬性名一致,該列才可以映射成功。

如果查詢出來的列名和pojo的屬性名不一致,通過定義一個(gè)resultMap對(duì)列名和pojo屬性名之間作一個(gè)映射關(guān)系。

  • resultMap:適合使用返回值是自定義實(shí)體類的情況
  • resultType:適合使用返回值得數(shù)據(jù)類型是非自定義的,即jdk的提供的類型.

mybatis sql xml include標(biāo)簽 (代碼去重)

mybatis sql xml 對(duì)于重復(fù)的代碼片段 可以使用 include 標(biāo)簽進(jìn)行優(yōu)化

例如 以下將查詢條件進(jìn)行優(yōu)化:

 <sql id="where"><!-- 定義代碼片段-->
  <where>
   <if test="CarNo != null and CarNo != ''">
    and car_no like concat('%',#{CarNo},'%')
   </if>
   <if test="CardNo != null and CardNo != ''">
    and card_no = #{CardNo} 
   </if>
   <if test="serviceType != null and serviceType != ''">
    and service_type = #{serviceType} 
   </if>
   .....省略
  </where>
 </sql>
 
 <select id="queryList" resultType="com.framework.entity.WeightEntity">
  select * from weight 
  <include refid="where"/> <!-- 引用-->
  <if test="offset != null and limit != null">
   limit #{offset}, #{limit}
  </if>
 </select>
 
  <select id="queryTotal" resultType="int">
  select count(*) from weight 
  <include refid="where" /> <!-- 引用->
 </select>

當(dāng)然 include標(biāo)簽不僅僅用于where, 只要重復(fù)代碼片段都可使用

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

相關(guān)文章

  • springboot通過SchedulingConfigurer實(shí)現(xiàn)多定時(shí)任務(wù)注冊(cè)及動(dòng)態(tài)修改執(zhí)行周期(示例詳解)

    springboot通過SchedulingConfigurer實(shí)現(xiàn)多定時(shí)任務(wù)注冊(cè)及動(dòng)態(tài)修改執(zhí)行周期(示例詳解)

    這篇文章主要介紹了springboot通過SchedulingConfigurer實(shí)現(xiàn)多定時(shí)任務(wù)注冊(cè)及動(dòng)態(tài)修改執(zhí)行周期,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • 當(dāng)Mybatis遇上目錄樹超全完美解決方案

    當(dāng)Mybatis遇上目錄樹超全完美解決方案

    這篇文章主要介紹了當(dāng)Mybatis遇上目錄樹有哪些解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • 為什么wait和notify必須放在synchronized中使用

    為什么wait和notify必須放在synchronized中使用

    這篇文章主要介紹了為什么wait和notify必須放在synchronized中使用,文章圍繞主題的相關(guān)問題展開詳細(xì)介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考以參考一下
    2022-05-05
  • SparkSQL讀取hive數(shù)據(jù)本地idea運(yùn)行的方法詳解

    SparkSQL讀取hive數(shù)據(jù)本地idea運(yùn)行的方法詳解

    這篇文章主要介紹了SparkSQL讀取hive數(shù)據(jù)本地idea運(yùn)行的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java 兩種延時(shí)thread和timer詳解及實(shí)例代碼

    Java 兩種延時(shí)thread和timer詳解及實(shí)例代碼

    這篇文章主要介紹了Java 兩種延時(shí)thread和timer詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Java實(shí)現(xiàn)一個(gè)簡單的文件上傳案例示例代碼

    Java實(shí)現(xiàn)一個(gè)簡單的文件上傳案例示例代碼

    這篇文章主要介紹了Java實(shí)現(xiàn)一個(gè)簡單的文件上傳案例,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • java實(shí)現(xiàn)攝像頭截圖功能

    java實(shí)現(xiàn)攝像頭截圖功能

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)攝像頭截圖功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • java使用tess4j進(jìn)行圖片文字識(shí)別功能

    java使用tess4j進(jìn)行圖片文字識(shí)別功能

    Tess4J?是Java?(JNA)?對(duì)?Tesseract?OCR?API?的封裝,Tess4J是java直接可使用的jar包,而Tesseract?OCR是支持Tess4J進(jìn)文件文字識(shí)別的基礎(chǔ),Tess4J可直接使用Maven方式引入,這篇文章主要介紹了java使用tess4j進(jìn)行圖片文字識(shí)別,需要的朋友可以參考下
    2023-04-04
  • SpringBoot集成Redis流程詳解

    SpringBoot集成Redis流程詳解

    這篇文章主要介紹了SpringBoot集成Redis流程詳解,導(dǎo)入jar包,編寫配置類,編寫util類,配置yml這四個(gè)步驟,有詳細(xì)的代碼示例,,需要的朋友可以參考下
    2023-05-05
  • Java對(duì)int[]數(shù)組做新增刪除去重操作代碼

    Java對(duì)int[]數(shù)組做新增刪除去重操作代碼

    這篇文章主要介紹了Java里面對(duì)int[]數(shù)組做新增刪除去重實(shí)現(xiàn),這里記錄下使用int[]數(shù)組對(duì)數(shù)組進(jìn)行新增刪除去重等操作,用來更加了解java里面的集合類思想,需要的朋友可以參考下
    2023-10-10

最新評(píng)論

石家庄市| 马尔康县| 定襄县| 郑州市| 张北县| 秭归县| 晋州市| 专栏| 邳州市| 松阳县| 宝应县| 新泰市| 清新县| 静安区| 馆陶县| 神木县| 衡阳市| 临夏县| 四子王旗| 呼和浩特市| 泸水县| 陆川县| 大新县| 商洛市| 柳州市| 恩平市| 蓬安县| 公主岭市| 乌海市| 广宁县| 霸州市| 重庆市| 海丰县| 孟村| 镶黄旗| 珲春市| 龙川县| 银川市| 浦县| 太白县| 枣庄市|