因公司运维那边将 Oracle 换成了 11.2 的版本,运行JDBC程序后一直提示异常信息:
dataSource配置如下:
以前使用 oracle10 是没有问题的,估计是因为数据库升级问题,于是发现通过使用 SQL Developer 能够正常连接,可以判断出 Oralce Server 端配置应该是不存在问题。莫非是驱动也需要更新?
于是经过在 oralce 官方一阵摸索之后,发现 oracle 专门为11G提供了JDBC的 driver,地址:
[url]http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html[/url]
于是下载了 ojdbc6.jar, 替换了 classes12.jar 后,仍然不能成功,还是上述错误。又返回到JDBC下载页面,看了一下它的 [url=http://download.oracle.com/otn/utilities_drivers/jdbc/112/Readme.txt]README[/url] 发现里面的里面有一个写法是:
于是我将我的 url 改成:
继续 Run ,发现一切正常,难道之所以要这样写是为了区分 Service name 和 SID?因为我发现通过使用 SQL Developer 连接库时,填写其中的 dbpri 其中就有一个选项,是选择 SID 还是 Service name。
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
dataSource配置如下:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
scope="singleton">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@211.***.***.**:1521:dbpri"/>
<property name="username" value="dyx" />
<property name="password" value="dyx" />
<property name="maxActive" value="100" />
<property name="maxIdle" value="10" />
<property name="maxWait" value="60000" />
<property name="validationQuery" value="select 1 from dual" />
</bean>
以前使用 oracle10 是没有问题的,估计是因为数据库升级问题,于是发现通过使用 SQL Developer 能够正常连接,可以判断出 Oralce Server 端配置应该是不存在问题。莫非是驱动也需要更新?
于是经过在 oralce 官方一阵摸索之后,发现 oracle 专门为11G提供了JDBC的 driver,地址:
[url]http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html[/url]
于是下载了 ojdbc6.jar, 替换了 classes12.jar 后,仍然不能成功,还是上述错误。又返回到JDBC下载页面,看了一下它的 [url=http://download.oracle.com/otn/utilities_drivers/jdbc/112/Readme.txt]README[/url] 发现里面的里面有一个写法是:
//<host>:<port>/<service_name>
于是我将我的 url 改成:
<property name="url" value="jdbc:oracle:thin:@211.***.***.**:1521/dbpri" />
继续 Run ,发现一切正常,难道之所以要这样写是为了区分 Service name 和 SID?因为我发现通过使用 SQL Developer 连接库时,填写其中的 dbpri 其中就有一个选项,是选择 SID 还是 Service name。