使用jdbc连接oracle数据库时遇到的一些问题

第一个问题:驱动名称错误

错误截图如下:

从错误提示可以看出,oracle少写了一个'a',手误对程序员来说是经常发生的事,有时能够及时发现纠错,有时就容易忽略。

建议大家将写好的测试无误的保存起来,毕竟这些都是固定的写法。

第二个问题:驱动名,数据库连接url,用户名,密码都没问题了,但是还是无法连接数据库

 错误截图如下:

PL/SQL已连接上

在网上找了半天,终于找到问题所在

jdbc:oracle:thin:@192.168.16.70:1521:orcldb

这个是数据库连接的url,orcldb是数据库服务名(SID)

接下来打开oracle安装目录,找到listener.ora这个文件

F:oracleproduct10.2.0db_1 etworkADMIN   这是我的文件路径

然后打开,内容如下:

# listener.ora Network Configuration File: F:oracleproduct10.2.0db_1NETWORKADMINlistener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = F:oracleproduct10.2.0db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = Oracle10.bdqn.com)
(SID_NAME = ORCL)
)
(SID_DESC =
(GLOBAL_DBNAME = zuosl)
(SID_NAME = zuosl)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.16.70)(PORT = 1521))
)
)

红色部分就是要连接的服务名,可以看到SID_NAME是'zuosl',不是orcldb

接下来更改代码,把orcldb改为zuosl,测试连接

好了,数据库连接成功。

还有一个小问题,为什么PL/SQL顶部的数据库名称会显示orcldb呢?

打开电脑开始菜单,找到Oracle的文件夹,里面有个NetManager

点击打开

 

上网了解了一下,orcldb是数据库名,而zuosl是服务名,jdbc连接数据库是要通过数据库配置的服务名来连接,所以在新建服务时,服务名最好和数据库名一致

网上找了一篇文章,是关于Oracle实例名,数据库名的一些讲解,大家有兴趣可以看一看

oracle实例名,数据库名,服务名等概念区别与联系【转】

原文地址:https://www.cnblogs.com/zuosl/p/4329841.html