普通引用本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*FROMxxxWHERE
<!--引用本xml中的SQL片段时,需改成带namespace的完整形式-->
<include refid="com.xx.xxx.xxx.xxx.dao.xxxMapper.yyySql"/>
</sql>