gpt4 book ai didi

xml - 我们可以将 MyBatis XML 文件导入另一个 MyBatis XML 文件吗?

转载 作者:行者123 更新时间:2023-12-05 06:40:11 27 4
gpt4 key购买 nike

我正在使用 Spring 和 MyBatis。我试图通过引用 Can we import XML file into another XML file? 导入另一个 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>

2) BaseTest.xml。实际上它只是一个 XML 片段;它没有 xml header ,也没有外部映射器元素:

<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 映射器导入另一个。如果可以:<mapper> 会发生什么namespace属性?

<sql>碎片,<resultMap>在映射器中定义的可以从另一个映射器引用。只需确保使用完整的限定名称:namespace.id

例如:<include refid="com.test.abc.TestMapper.sqlFragementId" />

Ans 不要忘记,如果包含的片段也包含一个片段,引用将从根映射器进行,然后即使在同一映射器中引用片段时也可能需要使用完整的限定名称。无论如何,保持简单的 id 引用允许覆盖(一种继承)。但这是要小心处理。

关于xml - 我们可以将 MyBatis XML 文件导入另一个 MyBatis XML 文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43207388/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com