我们可以将MyBatis XML文件导入另一个MyBatis XML文件吗?
我用的是Spring和MyBatis。我尝试通过引用导入另一个MyBatis文件(自动生成) 1) MyTest.xml我们可以将MyBatis XML文件导入另一个MyBatis XML文件吗?,xml,mybatis,spring-mybatis,Xml,Mybatis,Spring Mybatis,我用的是Spring和MyBatis。我尝试通过引用导入另一个MyBatis文件(自动生成) 1) MyTest.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" [ <!EN
<?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" [
<!ENTITY BaseTest.xml SYSTEM "BaseTest.xml" >
]>
<mapper namespace="com.test.abc">
&BaseTest.xml;
<select id="CUSTOMIZED_SELECT">
...
</select>
<insert id="CUSTOMIZED_INSERT">
...
</insert>
</mapper>
&BaseTest.xml;
...
...
2) BaseTest.xml。实际上,它只是一个XML片段;它既没有xml头也没有外部映射器元素:
<sql id="GENERAL_WHERE">
...
</sql>
<select id="GENERAL_SELECT">
...
</select>
<insert id="GENERAL_INSERT">
...
</insert>
...
...
...
这两个文件位于同一目录中。但是Spring总是抱怨找不到BaseTest.xml
我有什么特别需要调整的吗
顺便说一句,BaseTest.xml和MyTest.xml背后的原因是BaseTest.xml是自动生成的,MyTest.xml是手动编写的
谢谢 否您无法将Mybatis XML映射器导入到另一个映射器中。 如果可以的话:
名称空间
属性会发生什么变化
片段,映射器中定义的
可以从另一个映射器引用。只需确保使用完整的限定名:namespace.id
e、 g:
Ans不要忘记,如果包含的片段也包含片段,则将从根映射器进行引用,然后即使在同一映射器中引用片段,也可能需要使用完整的限定名。无论如何,保持简单id引用允许重写(一种继承)。但这需要小心处理。谢谢你的回答。我知道这可以奏效,但那不是我想要的。本质上,MyBatis是一个XML文件,因此它应该能够根据需要不固定地包含另一个XML文件。当然,我们不应该在BaseTest.xml中添加元素,我已经重新编辑了我的问题,以包含一个BaseTest.xml的示例,这样就更清楚了。