pra*_*pes 20 java ibatis mybatis
我想将我的几个SQL Map XML文件使用的sql片段放在一个单独的文件中.目前,<sql>具有这些片段的元素与其他元素一起位于其中一个元素中<select>,这使得它们很难找到.
我是否可以使用仅定义几个<sql>元素的映射器,而不是用于生成接口的实现?这个映射器的正确名称空间是什么?
这是包含framents的SQL Map文件:
<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
</select>
FROM some_table
<include refid="whereDate"/>
<include refid="otherSqlFragment"/>
</select>
</mapper>
Run Code Online (Sandbox Code Playgroud)
我想分开这样的元素:
第一个Sql Map文件:
<mapper namespace="com.company.project.dao.???">
<sql id="whereDate">
WHERE date(`time`) BETWEEN #{startDate} AND #{endDate}
</sql>
<sql id="someOtherSqlFragment">
...
</sql>
</mapper>
Run Code Online (Sandbox Code Playgroud)
第二个Sql Map文件:
<mapper namespace="com.company.project.dao.someDao">
<select id="getSomeData"
resultType="SomeClass"
parameterType="DateParam" >
SELECT some_column, another_column
</select>
FROM some_table
<include refid="whereDate"/>
<include refid="otherSqlFragment"/>
</select>
</mapper>
Run Code Online (Sandbox Code Playgroud)
小智 28
这正是我以前工作过的项目.常见片段在单独的文件中定义,该文件包含在主iBATIS配置文件中.
我们在根目录下有一个SQL映射文件,Core.ism.xml如下所示:
<sqlMap namespace="Core" >
<sql id="fragmentBasicAuditFieldNames">
CreateDate, CreateUser,
UpdateDate, UpdateUser, UpdateCode
</sql>
....
Run Code Online (Sandbox Code Playgroud)
然后在我们的SQL映射文件中,我们可以像这样引用它:
<include refid="Core.fragmentBasicAuditFieldNames" />
Run Code Online (Sandbox Code Playgroud)
我希望我能理解你的要求!
说吧,你有一些
<mapper namespace="Common">
<sql id="idsIn">
${column} IN
<foreach item="id" collection="ids" separator="," open="(" close=")">
#{id}
</foreach>
</sql>
</mapper>
Run Code Online (Sandbox Code Playgroud)
与另一个映射器相比,您可以像这样使用它:
<mapper namespace="OtherMapper">
<sql id="someSql">
...
<include refid="Common.idsIn">
<property name="column" value="${column}"/>
<!-- OR hardcode: <property name="column" value="id"/> -->
<property name="filterPksTable" value="${filterPksTable}"/>
</include>
...
</sql>
</mapper>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27464 次 |
| 最近记录: |