我有iBatis xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap>
<resultMap id="dataResult" class="...skipped...">
...skipped...
</resultMap>
<procedure id="dataPull" resultMap="dataResult" >
{call RealtimeDataPull ()}
</procedure>
<update id="updateTrades" parameterClass="...skipped...">
UPDATE ...skipped... where ...skipped...
</update>
</sqlMap>
在这里,我需要外部化数据库存储过程名称RealtimeDataPull
和UPDATE
SQL语句。我要把它们放到普通的Java属性文件中。
如何在iBatis xml配置中正确执行此操作?
我试图定义这样的参数
<procedure id="dataPull" resultMap="dataResult" >
${sql.dataPullCall}
</procedure>
<update id="updateTrades" parameterClass="...skipped...">
${sql.updateTradesStatement}
</update>
并将参数放入属性文件
sql.dataPullCall={call RealtimeDataPull ()}
sql.updateTradesStatement=UPDATE ...skipped... where ...skipped...
但是这种${...}
方法由于某些原因无法正常工作。
答案 0 :(得分:0)
我的问题的解决方案是使用包括但不使用标准Spring方法的iBatis自定义属性文件
<sqlMapConfig>
<properties resource="sql.properties" />
<sqlMap resource="dbMapping.xml"/>
</sqlMapConfig>