亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Java 中使用 HikariCP 時如何指定數據庫特定屬性?

在 Java 中使用 HikariCP 時如何指定數據庫特定屬性?

拉莫斯之舞 2023-05-10 17:18:38
在通過 HikariCP 庫啟動數據庫連接時,我需要添加如下所示的 Oracle 數據庫屬性,但沒有在網上找到任何示例。    oracle.jdbc.timezoneAsRegion=true     oracle.jdbc.timestampTzInGmt=true
查看完整描述

3 回答

?
烙印99

TA貢獻1829條經驗 獲得超13個贊

這對我有用Spring Boot 2.3.2.RELEASE

application.properties:

spring.datasource.hikari.data-source-properties.oracle.jdbc.timezoneAsRegion=true
spring.datasource.hikari.data-source-properties.oracle.jdbc.timestampTzInGmt=true

查看:

@Autowired
private DataSource dataSource;
:
logger.info(dataSource.getConnection().unwrap(OracleConnection.class).getProperties().getProperty("oracle.jdbc.timezoneAsRegion"));
logger.info(dataSource.getConnection().unwrap(OracleConnection.class).getProperties().getProperty("oracle.jdbc.timestampTzInGmt"));

輸出:

真真
_


查看完整回答
反對 回復 2023-05-10
?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

這就像addDataSourceProperty在您的中添加新的一樣簡單DataSource

public class DataSource {


? ? private static HikariConfig config = new HikariConfig();

? ? private static HikariDataSource ds;


? ? static {

? ? ? ? config.setJdbcUrl( "jdbc_url" );

? ? ? ? config.setUsername( "database_username" );

? ? ? ? config.setPassword( "database_password" );

? ? ? ? ....

? ? ? ? config.addDataSourceProperty( "oracle.jdbc.timezoneAsRegion" , "true" );

? ? ? ? config.addDataSourceProperty( "oracle.jdbc.timestampTzInGmt" , "true" );


? ? ? ? ds = new HikariDataSource( config );

? ? }


? ? private DataSource() {}


? ? public static Connection getConnection() throws SQLException {

? ? ? ? return ds.getConnection();

? ? }

}

要驗證連接中的設置,您必須先解包以獲取 Oracle 連接


def hkConn = DataSource.getConnection()?


def conn? = hkConn.unwrap(OracleConnection.class);?


println conn.getProperties().getProperty("oracle.jdbc.timezoneAsRegion");

println conn.getProperties().getProperty("oracle.jdbc.timestampTzInGmt");

它返回


true

true

使用 HikariCP-2.7.2 和 Oracle 12.1 測試


查看完整回答
反對 回復 2023-05-10
?
手掌心

TA貢獻1942條經驗 獲得超3個贊

你在使用 Spring Boot 嗎?


如果您使用的是 Spring Boot,則可以嘗試通過屬性進行設置:


spring.datasource.hikari.*= # Hikari specific settings


使用 MySQL 的屬性文件示例之一:


spring.datasource.hikari.mysql.driver-class-name=com.mysql.jdbc.Driver

spring.datasource.hikari.mysql.jdbc-url=jdbc:mysql://10.0.9.198:3306/develop_report?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&rewriteBatchedStatements=true

spring.datasource.hikari.mysql.username=root

spring.datasource.hikari.mysql.password=123456

spring.datasource.hikari.mysql.minimum-idle=5

spring.datasource.hikari.mysql.idle-timeout=180000

spring.datasource.hikari.mysql.maximum-pool-size=20

spring.datasource.hikari.mysql.auto-commit=true

spring.datasource.hikari.mysql.pool-name=Mysql-spring.datasource.hikariCP

spring.datasource.hikari.mysql.max-lifetime=1800000

spring.datasource.hikari.mysql.connection-timeout=30000

spring.datasource.hikari.mysql.connection-test-query=SELECT 1

spring.datasource.hikari.mysql.validation-timeout=5000


查看完整回答
反對 回復 2023-05-10
  • 3 回答
  • 0 關注
  • 209 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號