mybatis引用其他xml文件中的SQL片段

普通引用本xml中的SQL片段:

<include refid="xxxSql"/>

引用其他xml中的SQL片段:

<include refid="com.xx.xxx.xxx.xxx.dao.xxxMapper.xxxSql"/>

区别就是要带上被引用xml的namespace,可以把xml比喻成java类,本类中调用直接写方法名,调用其他类要写全限定类名再.方法名,差不多这个意思

注意事项:

如果被引用的SQL片段中也有其他片段的引用,则在被外部xml引用的情况下,需要把本段中的SQL引用也改为带namespace的形式,否则会导致启动报错。

原因是引用外部xml是直接把这个片段拿过来,其中存在非全限定形式的引用就会从本xml中找,找不到就报错了。


<!--被外部xml引用的SQL片段-->
<sql id="xxxSql">
        SELECT
            *
        FROM
            xxx
        WHERE
      <!--引用本xml中的SQL片段时,需改成带namespace的完整形式-->
      <include refid="com.xx.xxx.xxx.xxx.dao.xxxMapper.yyySql"/> 

</sql>

 

posted @ 2025-03-28 10:18  荒野猛兽  阅读(131)  评论(0)    收藏  举报