java使用oci方式连接oracle

java使用oci方式连接oracle

jdbc连接oracle数据库的两种方式

thin:是纯java驱动程序,轻巧且易于安装。它提供的性能可以与oci方式相媲美。JDBC thin驱动程序完全用java编写,与平台无关,不需要安装oracle客户端。

Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@//ip:port/dbname", "user", "passw0rd");

oci:调用c++接口occi,据说性能优于thin方式。需要安装oracle客户端。

Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:oci:@//ip:port/dbname", "user", "passw0rd");

两种连接方式只需要将thin改为oci即可。因本地安装了oracle客户端,所以oci方式可不写ip和port,jdbc:oracle:oci:@dbname 这种写法也可以。

客户端安装

客户端下载链接: https://www.oracle.com/cn/database/technology/instant-client.html.
basic包是基础包,必须下载,还需要sqlplus。tools、jdbc、sdk三个包没有搞清楚作用,就一起下载了。

windows安装

  1. 将下载的压缩包解压到统一目录下
    E:\path\instantclient_11_2
  2. 在instantclient_11_2下创建 network\admin目录,创建tnsname.org文件,配置客户端与数据库连接监听
dbname=
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 数据库ip)(PORT = 1521))
   )
   (CONNECT_DATA =
     (SERVICE_NAME = dbname)
   )
 )
  1. 修改环境变量
    在系统变量中新建
ORACLE_HOME=E:\path\instantclient_11_2
ORACLE_SID=dbname
TNS_ADMIN=E:\path\instantclient_11_2\network\admin
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
在path中添加 E:\path\instantclient_11_2
  1. sqlplus连接测试
    cmd窗口执行连接命令:
    sqlplus username/password@ip:port/dbname

mac安装

参考博客:https://blog.csdn.net/chisi5902/article/details/100607760

Linux安装

有两种包rpm和zip,不推荐使用yum+rpm方式。
官方教程:https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html

  1. 下载需要的zip包
  2. 解压到同一目录下
cd /usr/lib/oracle18     
unzip instantclient-basic-linux.x64-18.5.0.0.0dbru.zip
  1. 修改配置文件 /etc/profile
export ORACLE_HOME=/usr/lib/oracle18/instantclient_18_5
ORACLE_SID=orcl11g
export LD_LIBRARY_PATH=:$ORACLE_HOME:$LD_LIBRARY_PATH:/lib:/usr/lib:/usr/local/lib
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=/usr/lib/oracle18/instantclient_18_5:$PATH
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK 
  1. 在/usr/lib/oracle18/instantclient_18_5/network/admin/下创建tnsname.org,配置连接监听
  2. sqlplus连接测试

java程序连接

开始程序使用maven添加了ojdbc各个版本的jar包,均报错
Exception in thread “main” java.lang.UnsatisfiedLinkError:no ocijdbc11 in java.library.path

6. 手动添加安装客户端的ojdbc18.jar包到项目中
我的windows安装的是11,所以选择ojdbc6.jar在这里插入图片描述
7. 添加程序启动配置
在这里插入图片描述
windows/mac oci连接成功。但linux环境下,eclipse启动报错:UnsatisfiedLinkError: /usr/lib/oracle18/instantclient_18_5/libocijdbc18.so: libclntsh.so.18.1: cannot open shared object file: No such file or directory

还是lib加载问题
参考博客:https://blog.csdn.net/edcvf3/article/details/9430637
https://blog.csdn.net/dumeifang/article/details/2963223
在/etc/ld.so.conf中添加 /usr/lib/oracle18/instantclient_18_5
运行 /sbin/ldconfig –v 命令,更新配置。
eclipse启动,成功。但idea还是Exception in thread “main” java.lang.UnsatisfiedLinkError:no ocijdbc11 in java.library.path,暂未解决…

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值