Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们可以将MyBatis XML文件导入另一个MyBatis XML文件吗?_Xml_Mybatis_Spring Mybatis - Fatal编程技术网

我们可以将MyBatis XML文件导入另一个MyBatis 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

我用的是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" [
        <!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的示例,这样就更清楚了。