Экстернализация заявлений iBatis - PullRequest
0 голосов
/ 05 июля 2018

У меня есть файл конфигурации 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...

но этот ${...} подход почему-то не работает.

1 Ответ

0 голосов
/ 06 июля 2018

Решение моей проблемы - использовать файлы пользовательских свойств iBatis, в том числе и не использовать стандартный подход Spring

<sqlMapConfig>
    <properties resource="sql.properties" />
    <sqlMap resource="dbMapping.xml"/>
</sqlMapConfig>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...