1. 概述
1.1 应用场景
前面以 Oracle为例介绍了 JDBC 数据连接的过程,其中 Oracle 是通过 thin 的方式连接的。
大家都知道 Oracle 除了 thin 方式可以连接之外,oci 方式也可以,本文介绍怎么通过 oci 的方式来连接 Oracle。
1.2 oci 和 thin 的区别
Java 程序连接 Oracle 数据库时,用 oci 驱动要比用 thin 驱动性能好些。
主要的区别是使用 thin 驱动时,不需要安装 Oracle 的客户端,而使用 oci 时则要安装 Oracle 的客户端。
2. oci连接方式
1)在本地安装好 Oracle 的客户端之后,打开开始菜单可以看到如下图的 Oracle 目录,打开下面的 Net Manager:
2)选中 Oracle net 配置-本地-服务命名,单击左边的创建,如下图所示:
3)在弹出的网络服务名向导框中,输入服务名,这个名可以随便写,填完后点击下一步,如下图所示:
4)保持默认的 TCP/IP 协议,点击下一步,如下图所示:
5)输入要连接的数据库的 IP 地址和端口号,然后点击下一步,如下图所示:
6)输入数据库名,即所谓的 databaseName,点击下一步,如下图所示:
7)点击测试,在弹出的窗口测试是否能正常连上数据库(注意用户名密码是否正确),成功连上数据库则点完成。如下图所示:
8)点击文件-保存网络配置,至此完成了服务名的配置。
9)打开设计器,打开服务器下面的定义数据连接,如下图所示:
10)新建 JDBC 数据连接,选择 Oracle,在 URL 里面输入 oci 连接方式,输入用户名,密码,点击测试连接,如下图所示:
URL 最后面的这个名称是第三步输入的那个网络服务名。
3. 注意事项
如果无法连接,请排查以下原因:
1)FineReport 是 64 位的,要对应的 64 位的 Oracle 客户端。
2)检查日志中的报错信息,如发现create connection error, url: jdbc:oracle:oci:@axing, errorCode 12154, state 66000类似信息
则是没有对应的网络服务名,检查服务名是否配置,或配置完有没有忘记保存。
3)检查日志中的报错信息,如发现错误代码:11300008 数据库连接失败: no ocijdbc10 in java.library.path
则是缺少 ocijdbc10.dll 文件,点击下载并解压获取 ocijdbc10.dll 文件:ocijdbc10.zip
将此文件下载复制到 Oracle 客户端安装目录对应的 product\11.2.0\dbhome_1\BIN 路径下,重启设计器即可。