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

mybatis引用其他文件中的sql片段的實現(xiàn)

 更新時間:2024年03月17日 11:02:31   作者:小王和八蛋  
Mybatis中也是支持引用其他Mapper文件中的SQL片段的,本文就來介紹一下如何使用,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧

前言

有一些通用的sql,在整個項目中都有可能使用的到, 但是我不太想定義java接口,結(jié)合著java邏輯來實現(xiàn)功能, 又或者在每一處的mapper.xml內(nèi)都定義sql片段, 那么如果需要調(diào)整sql,我就需要調(diào)整好多處相同的代碼. 如何后期維護方便,則需要單獨創(chuàng)建一個mapper.xml文件, 只用來存放這些sql片段,沒有接口的定于,接著業(yè)務中需要用到該sql片段的地方,就去引用這個外部的sql 片段即可.

實例

全局的mapper.xml

由于我們只有sql 片段,不需要映射Dao層接口, 所以namespase可以自定義

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="commonSQL">
    <sql id="SQL1">
        select * from 表名 where id = #{id}
    </sql>

    <sql id="SQL2">
        <!--注意再當前頁面引用sql 片段不能直接寫SQL1, 要namespase + sqlid 才可以,否則會報錯-->
        <include refid="commonSQL.SQL1"/>
    </sql>
</mapper>

業(yè)務mapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xxx.xxx.xxxMapperDao">
    <select id="querySQL1" resultType="java.util.HashMap" parameterType="java.util.HashMap">
        select * from (
         <include refid="commonSQL.SQL1"/>
        )
    </select>

<select id="querySQL2" resultType="java.util.HashMap" parameterType="java.util.HashMap">
        select * from 表名 a
        left join (
         <include refid="commonSQL.SQL1">
            <!-- 如果有參數(shù)和sql片段映射不上,可以通過property 重新定義一下變量名稱即可-->
            <property name="id" value="#{ID}">
        </include>
        ) b
        on a.id = b.id
    </select>
</mapper>

到此這篇關(guān)于mybatis引用其他文件中的sql片段的實現(xiàn)的文章就介紹到這了,更多相關(guān)mybatis引用其他文件sql片段內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java深入講解SPI的使用

    Java深入講解SPI的使用

    SPI英文全稱為Service Provider Interface,顧名思義,服務提供者接口,它是jdk提供給“服務提供廠商”或者“插件開發(fā)者”使用的接口
    2022-06-06
  • 詳解springboot+aop+Lua分布式限流的最佳實踐

    詳解springboot+aop+Lua分布式限流的最佳實踐

    這篇文章主要介紹了詳解springboot+aop+Lua分布式限流的最佳實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • Java多線程 CompletionService

    Java多線程 CompletionService

    這篇文章主要介紹了Java多線程 CompletionService,CompletionService用于提交一組Callable任務,其take方法返回已完成的一個Callable任務對應的Future對象,需要的朋友可以參考一下文章詳細內(nèi)容
    2021-10-10
  • 使用mybatis的@Interceptor實現(xiàn)攔截sql的方法詳解

    使用mybatis的@Interceptor實現(xiàn)攔截sql的方法詳解

    攔截器是一種基于 AOP(面向切面編程)的技術(shù),它可以在目標對象的方法執(zhí)行前后插入自定義的邏輯,本文給大家介紹了使用mybatis的@Interceptor實現(xiàn)攔截sql的方法,需要的朋友可以參考下
    2024-03-03
  • SpringBoot實現(xiàn)單文件與多文件上傳

    SpringBoot實現(xiàn)單文件與多文件上傳

    本次例子不基于第三方存儲(如七牛云對象存儲、阿里云對象存儲、騰訊云對象存儲等),僅基于本地存儲。本文主要內(nèi)容如下:公共文件存儲代碼;單文件上傳代碼;多文件上傳代碼
    2021-05-05
  • Java繼承超詳細教程

    Java繼承超詳細教程

    繼承是面向?qū)ο笳Z法的三大特征之一,繼承可以降低代碼編寫的冗余度,提高編程的效率,通過繼承,子類獲得了父類的成員變量和方法,一個子類如何繼承父類的字段和方法,如何修改從父類繼承過來的子類的方法呢,今天我們開始學習有關(guān)Java繼承的知識,感興趣的朋友一起看看吧
    2023-11-11
  • SpringBoot在IDEA中實現(xiàn)熱部署的步驟

    SpringBoot在IDEA中實現(xiàn)熱部署的步驟

    這篇文章主要介紹了SpringBoot在IDEA中實現(xiàn)熱部署的步驟,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下
    2020-11-11
  • java web個人通訊錄系統(tǒng)設(shè)計

    java web個人通訊錄系統(tǒng)設(shè)計

    這篇文章主要為大家詳細介紹了java web個人通訊錄系統(tǒng)設(shè)計,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Spring Boot項目@RestController使用重定向redirect方式

    Spring Boot項目@RestController使用重定向redirect方式

    這篇文章主要介紹了Spring Boot項目@RestController使用重定向redirect方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 解析ConcurrentHashMap:成員屬性、內(nèi)部類、構(gòu)造方法

    解析ConcurrentHashMap:成員屬性、內(nèi)部類、構(gòu)造方法

    ConcurrentHashMap是由Segment數(shù)組結(jié)構(gòu)和HashEntry數(shù)組結(jié)構(gòu)組成。Segment的結(jié)構(gòu)和HashMap類似,是一種數(shù)組和鏈表結(jié)構(gòu),今天給大家普及java面試常見問題---ConcurrentHashMap知識,一起看看吧
    2021-06-06

最新評論