【发布时间】:2011-04-25 19:01:10
【问题描述】:
我通过 JNDI 查找将 Spring JdbcTemplate/SimpleJdbcTemplate 与 Oracle 数据源 (oracle.jdbc.pool.OracleDataSource) 结合使用。此应用程序在连接到 Oracle 11g 数据库的 Oracle 应用服务器 (OAS) 10.1.3 上运行。
我正在建立的数据库连接是一个具有几个非默认数据库角色的帐户。当建立到数据库的物理连接时,我需要启用这些角色(可能通过 Oracle “set role”命令)。我看不到任何方法可以配置 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>
Spring bean 定义:
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/xxx" />
【问题讨论】: