首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iBatis语句外部化

iBatis语句外部化
EN

Stack Overflow用户
提问于 2018-07-05 23:45:46
回答 1查看 20关注 0票数 0

我有iBatis xml配置文件

代码语言:javascript
复制
<?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存储过程名为RealtimeDataPullUPDATE SQL语句。我要把它们放到常规的java属性文件中。

如何在iBatis xml配置中正确执行此操作?

我试着像这样定义参数

代码语言:javascript
复制
<procedure id="dataPull" resultMap="dataResult" >
    ${sql.dataPullCall}
</procedure>

<update id="updateTrades" parameterClass="...skipped...">
    ${sql.updateTradesStatement}
</update>

并将参数放入属性文件中

代码语言:javascript
复制
sql.dataPullCall={call RealtimeDataPull ()}
sql.updateTradesStatement=UPDATE ...skipped... where ...skipped...

但是由于某些原因,这种${...}方法不起作用。

EN

回答 1

Stack Overflow用户

发布于 2018-07-06 22:54:22

我问题解决方案是使用iBatis自定义属性文件,而不是使用标准的Spring方法

代码语言:javascript
复制
<sqlMapConfig>
    <properties resource="sql.properties" />
    <sqlMap resource="dbMapping.xml"/>
</sqlMapConfig>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51195417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档