我想把我的几个SQL Map XML文件使用的SQL片段放在一个单独的文件中。目前,带有这些片段的<sql>
元素与其他元素(如<select>
)一起位于一个Map器中,这使得它们很难找到。
我可以有一个只定义了几个<sql>
元素的Map器,并且不用于生成接口的实现吗?这个Map器的正确名称空间是什么?
这是包含以下片段的SQLMap文件:
<mapper namespace="com.company.project.dao.someDao">
<sql id="whereDate">
WHERE date(`time`) BETWEEN #{startDate} AND #{endDate}
</sql>
<sql id="someOtherSqlFragment">
...
</sql>
<select id="getSomeData" resultType="SomeClass" parameterType="DateParam" >
SELECT some_column, another_column
FROM some_table
<include refid="whereDate"/>
<include refid="otherSqlFragment"/>
</select>
</mapper>
我想把这些元素这样分开:
第一个SqlMap文件:
<mapper namespace="com.company.project.dao.???">
<sql id="whereDate">
WHERE date(`time`) BETWEEN #{startDate} AND #{endDate}
</sql>
<sql id="someOtherSqlFragment">
...
</sql>
</mapper>
第二个SqlMap文件:
<mapper namespace="com.company.project.dao.someDao">
<select id="getSomeData" resultType="SomeClass" parameterType="DateParam" >
SELECT some_column, another_column
FROM some_table
<include refid="whereDate"/>
<include refid="otherSqlFragment"/>
</select>
</mapper>
3条答案
按热度按时间fnx2tebb1#
这正是我以前工作的一个项目所做的。公共片段在一个单独的文件中定义,该文件包含在主iBATIS配置文件中。
我们在根目录下有一个名为
Core.ism.xml
的SQLMap文件,如下所示:然后在我们的SQLMap文件中,我们可以这样引用它:
我希望我没理解错你在问什么!
u59ebvdq2#
说,你有一些
在另一个Map器中,您可以像这样使用它:
另外,您可以查看here
drnojrws3#
您可以通过ResultMap标记的存储库类名访问该标记,例如