使用 Spring Boot 2.4配置Oracle的UCP資料庫連線池

banq發表於2021-10-19

Oracle 通用連線池 (UCP) 是一個功能豐富的連線池,它提供與 Oracle Real Application Clusters (RAC)、Active Data Guard (ADG)、Global Data Services (GDS) 的無縫整合,為高可用性提供內建支援,可擴充套件性和效能特點。對於舊版本的 Spring Boot,需要一個額外的 bean 類來使用 UCP 作為資料來源。現在,使用 SpringBoot v2.4.0 及更高版本,無需任何額外程式碼即可更輕鬆地配置 UCP。Spring 將 UCP 標識為資料來源,就像application.properties 中的任何其他資料來源一樣。按照以下步驟檢視 UCP 的執行情況。

#1:從 Github下載示例Spring 應用程式

#2:確保您使用的是最新的 Spring-Boot 版本。在pom.xml 中

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.4.5</version>
</parent>


#3:在application.properties 中指定 UCP 作為資料來源。您可以根據需要設定其他UCP 屬性。確保更新資料庫 URL、使用者名稱和密碼以指向您的資料庫。

# For connecting to Autonomous Database (ATP) refer https://www.oracle.com/database/technologies/getting-started-using-jdbc.html
# Provide the database URL, database username and database password 
spring.datasource.url=jdbc:oracle:thin:@dbname_alias?TNS_ADMIN=/Users/test/wallet/wallet_dbname_alias
spring.datasource.username=<your-db-user>
spring.datasource.password=<your-db-password>

# Properties for using Universal Connection Pool (UCP)
# Note: These properties require JDBC version 21.0.0.0
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.type=oracle.ucp.jdbc.PoolDataSource
# For using Replay datasource
spring.datasource.oracleucp.connection-factory-class-name=oracle.jdbc.replay.OracleDataSourceImpl
# For using Non-Replay datasource
spring.datasource.oracleucp.connection-factory-class-name=oracle.jdbc.pool.OracleDataSource
spring.datasource.oracleucp.sql-for-validate-connection=select * from dual
spring.datasource.oracleucp.connection-pool-name=connectionPoolName1
spring.datasource.oracleucp.initial-pool-size=15
spring.datasource.oracleucp.min-pool-size=10
spring.datasource.oracleucp.max-pool-size=30


#4:編譯並執行OracldJdbcApplication.java以驗證與資料庫的連線。

#5:使用JDBCSampleData.java建立一個新使用者 testuser以及 EMP 和 DEPT 表,並測試列出所有員工和插入新員工的其他功能。

相關文章