当前位置:首页 > 开发 > 系统架构 > 架构 > 正文

JDBC 连接 Oracle 11G 问题小记

发表于: 2010-09-25   作者:denger   来源:转载   浏览:
摘要: 因公司运维那边将 Oracle 换成了 11.2 的版本,运行JDBC程序后一直提示异常信息: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor dataSource配置如下: <bean id="dataSource" clas
因公司运维那边将 Oracle 换成了 11.2 的版本,运行JDBC程序后一直提示异常信息:

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,地址:
http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html
于是下载了 ojdbc6.jar, 替换了 classes12.jar 后,仍然不能成功,还是上述错误。又返回到JDBC下载页面,看了一下它的 README 发现里面的里面有一个写法是:
//<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。

JDBC 连接 Oracle 11G 问题小记

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号