欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

在這里插入圖片描述

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

具體用法如下:

1.引用同一個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)簽中通過${}取出對應(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.對于多個xml文件需要同時引用一段相同的

在某個xml 中定義這個 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的屬性名不一致,通過定義一個resultMap對列名和pojo屬性名之間作一個映射關(guān)系。

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

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

mybatis sql xml 對于重復(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ù)代碼片段都可使用

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

相關(guān)文章

  • springboot集成與使用Sentinel的方法

    springboot集成與使用Sentinel的方法

    這篇文章主要介紹了springboot集成與使用Sentinel的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • MyBatis版本升級導(dǎo)致OffsetDateTime入?yún)⒔馕霎惓栴}復(fù)盤

    MyBatis版本升級導(dǎo)致OffsetDateTime入?yún)⒔馕霎惓栴}復(fù)盤

    這篇文章主要介紹了MyBatis版本升級導(dǎo)致OffsetDateTime入?yún)⒔馕霎惓栴}復(fù)盤,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Spring4如何自定義@Value功能詳解

    Spring4如何自定義@Value功能詳解

    這篇文章主要給大家介紹了關(guān)于Spring4如何自定義@Value功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用spring4具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • Java中Object.equals和String.equals的區(qū)別詳解

    Java中Object.equals和String.equals的區(qū)別詳解

    這篇文章主要給大家介紹了Java中Object.equals和String.equals的區(qū)別,文中通過一個小示例讓大家輕松的明白這兩者的區(qū)別,對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-04-04
  • JavaEE實現(xiàn)基于SMTP協(xié)議的郵件發(fā)送功能

    JavaEE實現(xiàn)基于SMTP協(xié)議的郵件發(fā)送功能

    這篇文章主要為大家詳細(xì)介紹了JavaEE實現(xiàn)基于SMTP協(xié)議的郵件發(fā)送功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • 5分鐘搭建SpringCloud Eureka服務(wù)注冊中心的實現(xiàn)

    5分鐘搭建SpringCloud Eureka服務(wù)注冊中心的實現(xiàn)

    這篇文章主要介紹了5分鐘搭建SpringCloud Eureka服務(wù)注冊中心的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 使用RocketMQTemplate發(fā)送帶tags的消息

    使用RocketMQTemplate發(fā)送帶tags的消息

    這篇文章主要介紹了使用RocketMQTemplate發(fā)送帶tags的消息,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • java eclipse 中文件的上傳和下載示例解析

    java eclipse 中文件的上傳和下載示例解析

    這篇文章主要介紹了eclipse java中文件的上傳和下載示例解析,文件上傳,瀏覽器在上傳的過程中是將文件以流的形式提交到服務(wù)器端的。對此感興趣的小伙伴可以了解一下
    2020-07-07
  • Java隨機(jī)生成姓名,手機(jī)號,住址代碼示例

    Java隨機(jī)生成姓名,手機(jī)號,住址代碼示例

    這篇文章主要介紹了Java隨機(jī)生成姓名,手機(jī)號,住址代碼示例,屬于Java基礎(chǔ)方面的內(nèi)容,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • 淺談JAVA并發(fā)之ReentrantLock

    淺談JAVA并發(fā)之ReentrantLock

    本文主要介紹了基于AQS實現(xiàn)的ReentrantLock(重入鎖),感興趣的同學(xué),可以參考下。
    2021-06-06

最新評論