Я использую Spring JdbcTemplate / SimpleJdbcTemplate в сочетании с источником данных Oracle (oracle.jdbc.pool.OracleDataSource) через поиск JNDI. Это приложение работает на сервере приложений Oracle (OAS) 10.1.3, подключающемся к базе данных Oracle 11g.
Соединение с базой данных, которое я устанавливаю, относится к учетной записи, имеющей несколько ролей базы данных не по умолчанию. Мне нужно включить эти роли (возможно, с помощью команды Oracle «установить роль»), когда физическое соединение с базой данных установлено. Я не вижу способа настроить источник данных Oracle для выдачи команды SQL для этого. Поскольку мой Java-код использует классы Spring JDBC, он не связан с открытием и закрытием соединений. Предлагает ли Spring какой-либо способ запуска инициализирующего SQL при получении соединения?
Определение источника данных:
<?xml version = '1.0' encoding = 'windows-1252'?>
<data-sources xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/data-sources-10_1.xsd">
<native-data-source data-source-class="oracle.jdbc.pool.OracleDataSource"
jndi-name="jdbc/xxx" name="xxx"
url="jdbc:oracle:thin:@hostxxx:1541:xxx"
password="zzzzz" user="username"/>
</data-sources>
Определение фасоли:
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/xxx" />