MyBatis/iBatis - 在单独的 SQL Map 文件中提供可重用的 sql 片段?
我想将我的几个 SQL Map XML 文件使用的 sql 片段放在一个单独的文件中。目前,具有这些片段的元素与其他元素(如)一起位于其中一个映射器中,这使得它们很难找到。<sql>
<select>
我是否可以有一个只定义几个元素而不用于生成接口实现的映射器?此映射器的正确命名空间是什么?<sql>
这是带有框架的 SQL 映射文件:
<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>
我想像这样分离元素:
第一个Sql Map文件:
<mapper namespace="com.company.project.dao.???">
<sql id="whereDate">
WHERE date(`time`) BETWEEN #{startDate} AND #{endDate}
</sql>
<sql id="someOtherSqlFragment">
...
</sql>
</mapper>
第二个 SQL 映射文件:
<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>