我有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>这里我需要外部化DB存储过程名为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...但是由于某些原因,这种${...}方法不起作用。
发布于 2018-07-06 22:54:22
我问题解决方案是使用iBatis自定义属性文件,而不是使用标准的Spring方法
<sqlMapConfig>
<properties resource="sql.properties" />
<sqlMap resource="dbMapping.xml"/>
</sqlMapConfig>https://stackoverflow.com/questions/51195417
复制相似问题