Skip to content

Instantly share code, notes, and snippets.

@neilcatalan
Created May 10, 2019 03:55
Show Gist options
  • Select an option

  • Save neilcatalan/0e72c8b2bfe6ac54412d2cde533526a1 to your computer and use it in GitHub Desktop.

Select an option

Save neilcatalan/0e72c8b2bfe6ac54412d2cde533526a1 to your computer and use it in GitHub Desktop.
Different Ways Creating Spring Bean for Oracle Data Source
<!-- non-XA Oracle DS wrapped with UCP with UCP pooled data source Factory -->
<bean id="dataSource" class="oracle.ucp.jdbc.PoolDataSourceFactory" factory-method="getPoolDataSource">
<property name="URL" value="jdbc:oracle:thin:@myserver:1521:mysid" />
<property name="user" value="myuser" />
<property name="password" value="mypassword" />
<property name="connectionFactoryClassName" value="oracle.jdbc.pool.OracleDataSource" />
<property name="connectionPoolName" value="ANAG_POOL" />
<property name="minPoolSize" value="5" />
<property name="maxPoolSize" value="10" />
<property name="initialPoolSize" value="5" />
<property name="inactiveConnectionTimeout" value="120" />
<property name="validateConnectionOnBorrow" value="true" />
<property name="maxStatements" value="10" />
</bean>
<!-- XA Oracle DS wrapped with UCP pooled data source Factory -->
<bean id="dataSource" class="oracle.ucp.jdbc.PoolDataSourceFactory" factory-method="getPoolXADataSource">
<property name="URL" value="jdbc:oracle:thin:@myserver:1521:mysid" />
<property name="user" value="myuser" />
<property name="password" value="mypassword" />
<property name="connectionFactoryClassName" value="oracle.jdbc.xa.client.OracleXADataSource" />
<property name="connectionPoolName" value="ANAG_POOL" />
<property name="minPoolSize" value="5" />
<property name="maxPoolSize" value="10" />
<property name="initialPoolSize" value="5" />
<property name="inactiveConnectionTimeout" value="120" />
<property name="validateConnectionOnBorrow" value="true" />
<property name="maxStatements" value="10" />
</bean>
<!-- Classic configuration for pooled Oracle data source -->
<bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource">
<property name="dataSourceName" value="ds"/>
<property name="URL" value="jdbc:oracle:thin:@myserver:1521:mysid"/>
<property name="user" value="myuser"/>
<property name="password" value="mypassword"/>
</spring:bean>
<!-- Using orcl Namespace. Same as with the classic way -->
<beans xmlns:orcl="http://www.springframework.org/schema/data/orcl"
xsi:schemaLocation="http://www.springframework.org/schema/data/orcl http://www.springframework.org/schema/data/orcl/spring-data-orcl-1.0.xsd">
...
<orcl:pooling-datasource id="dataSource" url="jdbc:oracle:thin:@myserver:1521:mysid" username="myuser" password="mypassword"/>
...
</beans>
<!-- Using convenience class from Spring Framework (I think it is Apache Jakarta Commons DBCP under the hood -- correct me if I'm wrong) -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@myserver:1521:mysid" />
<property name="username" value="myuser" />
<property name="password" value="mypassword" />
</bean>
@hhyygg2009
Copy link

great! it solve my problem. thanks~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment