mybatis引用其他文件中的sql片段的實(shí)現(xiàn)
前言
有一些通用的sql,在整個(gè)項(xiàng)目中都有可能使用的到, 但是我不太想定義java接口,結(jié)合著java邏輯來(lái)實(shí)現(xiàn)功能, 又或者在每一處的mapper.xml內(nèi)都定義sql片段, 那么如果需要調(diào)整sql,我就需要調(diào)整好多處相同的代碼. 如何后期維護(hù)方便,則需要單獨(dú)創(chuàng)建一個(gè)mapper.xml文件, 只用來(lái)存放這些sql片段,沒(méi)有接口的定于,接著業(yè)務(wù)中需要用到該sql片段的地方,就去引用這個(gè)外部的sql 片段即可.
實(shí)例
全局的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">
<!--注意再當(dāng)前頁(yè)面引用sql 片段不能直接寫(xiě)SQL1, 要namespase + sqlid 才可以,否則會(huì)報(bào)錯(cuò)-->
<include refid="commonSQL.SQL1"/>
</sql>
</mapper>業(yè)務(wù)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片段映射不上,可以通過(guò)property 重新定義一下變量名稱即可-->
<property name="id" value="#{ID}">
</include>
) b
on a.id = b.id
</select>
</mapper>到此這篇關(guān)于mybatis引用其他文件中的sql片段的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)mybatis引用其他文件sql片段內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)現(xiàn)轉(zhuǎn)換圖片格式的示例代碼
在日常的軟件開(kāi)發(fā)中,處理圖像文件是一項(xiàng)常見(jiàn)任務(wù),這篇文章將實(shí)現(xiàn)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的Java程序,用于將一種圖片格式轉(zhuǎn)換為另一種格式,需要的可以了解下2025-02-02
Java中LinkedHashMap的實(shí)現(xiàn)詳解
LinkedHashMap是Java中的一個(gè)Map容器,它繼承自HashMap,并且還可以對(duì)元素進(jìn)行有序存儲(chǔ),本文將介紹LinkedHashMap的實(shí)現(xiàn)原理以及使用方法,并且提供相應(yīng)的測(cè)試用例和全文小結(jié),需要的可以參考下2023-09-09
SpringBoot之QueryDsl嵌套子查詢問(wèn)題
這篇文章主要介紹了SpringBoot之QueryDsl嵌套子查詢問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
SpringBoot使用Dubbo的全過(guò)程(直連模式)
這篇文章給大家介紹SpringBoot使用Dubbo的全過(guò)程(直連模式),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2026-05-05

