gpt4 book ai didi

java - SpringBoot 2中获取OracleDataSource

转载 作者:行者123 更新时间:2023-12-01 17:31:07 25 4
gpt4 key购买 nike

是否可以使用 NamedParameterJdbcTemplate 对象从默认的 SpringBoot 2 Hikari 连接池中检索 OracleDataSource?使用 Java 8、Oracle 11g (ojdbc6-11.2.0.1.jar) 和 gradle这是我尝试过的。

@Repository
public class MyClass{

@Autowired
NamedParameterJdbcTemplate jdbcTemplate;

public void myMethod(){
try{
//OracleDataSource ods = new OracleDataSource(); // This works but is obviously not Spring
OracleDataSource ods = (OracleDataSource) jdbcTemplate.getJdbcTemplate().getDataSource(); // This fails

ods.setURL(url);
ods.setUser(user);
ods.setPassword(pass);

...
catch(Exception e){
System.out.println("In Exception");
e.printStackTrace();
}
}

}

应用程序属性:

spring.datasource.url=jdbc:oracle:thin:@//${ORA_HOST}:${ORA_PORT}/${ORA_SID}
spring.datasource.username=${USER}
spring.datasource.password=${PASS}

错误消息:

In Exception
java.lang.ClassCastException: com.zaxxer.hikari.HikariDataSource cannot be cast to oracle.jdbc.pool.OracleDataSource

最佳答案

我认为这是不可能的(或必要的)。最简单的方法是 unwrap() 一个已经连接到 dB 的连接对象:

Connection conn =  this.jdbcTemplate.getJdbcTemplate().getDataSource().getConnection().unwrap(OracleConnection.class);

关于java - SpringBoot 2中获取OracleDataSource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61118813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com