我想将我的几个 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 Map 文件:
<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>