Java程序连接oracle数据库时,用oci驱动要比用thin驱动性能好些。主要的区别是使用thin驱动时,不需要安装oracle的客户端,而使用oci时则要安装oracle的客户端。

从使用thin驱动切换到oci驱动在配置来说很简单,只需把连接字符串java:oracle:thin:@hostip:1521:实例名换为java:oracle:oci@本地服务名即可。如:

jdbc:oracle:thin:@10.1.1.2:1521:shdb

改成:

jdbc:oracle:oci8:@shdb

但这里这台机器需安装oracle数据库的客户端并配置本地服务名,同时还需指定NLS_LANG环境变量,NLS_LANG环境变量是用来控制客户端在显示oracle数据库的数据时所用的字符集和本地化习惯。通常把NLS_LANG的字符集部分指定为数据库所用的字符集,就不会存在java显示的乱码问题了。

对于oracle数据库客户端的安装,有二种选择,一是老实的用oracle数据库的安装光盘,安装对应版本的oracle客户端。二是下载oracle提取的即时客户端,即时客户端是不用安装的,把下载包解压即可。

要使java web正常的通过oci驱动访问oracle,还需要客户端正确的配置一下相关变量。主要如下:

对于windows系统并使用oracle客户端时:

1、把%ORACLE_HOME%\lib加到PATH环境变量。

2、把%ORACLE_HOME%\jdbc\lib\classes12.jar加到CLASSPATH环境变量里,也可以把classes12.jar拷贝到tomcat的comman\lib目录下。

对于windows系统并使用oracle的即时客户端时(假定即时客户端解压在d盘):

1、把d:\instantclient_10_2加到PATH环境变量;

2、把d:\instantclient_10_2\classes12.jar加到CLASSPATH环境变量里,也可以把classes12.jar拷贝到tomcat的comman\lib目录下。

对于linux系统并使用oracle客户端时:

1、在使用tomcat的用户主目录下的.bash_profile文件中加入:

exprot ORACLE_HOME=/u01/app/oracle/product/9.2.0.4

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

2、把classes12.jar拷贝到tomcat的comman\lib目录下。

对于linux系统并使用oracle即时客户端时:

1、在使用tomcat的用户主目录下的.bash_profile文件中加入:

exprot ORACLE_HOME=/instantclient_10_2

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

2、把instantclient_10_2目录下的classes12.jar拷贝到tomcat的comman\lib目录下。

如果一个tomcat下带了几个应用,且几个应用都要连接oracle数据库时,则要注意的是,不要在每个应用的WEB-INF/lib目录下放入oracle的classes12.jar/zip文件。而应该把classes12.jar/zip文件放到tomcat的common/lib目录下。否则会出来ojdbclib9/10库重复加载的错误。

使用oracle即时客户端时,本地服务名的建立可以在目录instantclient_10_2下建立tnsnames.ora下添加连接串,如:

SHDB =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =

(PROTOCOL = TCP)(HOST = 10.1.1.236)(PORT = 1521)))

(CONNECT_DATA =(SERVICE_NAME = shdb)))

java oci_java oracle oci方式连接相关推荐

  1. oracle protocol=beq 不可用,Oracle BEQ方式连接配置

    Oracle BEQ方式连接配置服务端和客户端在同一台机器上,可以使用BEQ连接,BEQ连接可以理解为进程间直接通信,不需要走网络监听,性能更高.可以参考MOS:How To Connect Usin ...

  2. QT Create OCI方式连接达梦数据库

    QT OCI方式连接达梦数据库 一.背景 用户使用QT Create开发集成软件 OCI的方式连接数据库. 需要说明的是,本人非开发人员,所以在C++代码编写思路或者使用方式上难免有些低级操作,调试中 ...

  3. java ora-12505_Java Oracle本地主机连接错误(ORA-12505)

    我正在尝试当前连接到当前计算机上的数据库. import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQL ...

  4. java操作oracle数据_Java连接Oracle数据库操作

    连接数据库 // 数据库连接 public static Connection DB() throws Exception { Connection conn; // 定义数据库的参数 String ...

  5. Java 原始的JDBC方式连接MySQL数据库【钢镚核恒】

    Java JDBC 简介 JDBC(Java DataBase Connectivity,Java数据库连接) JDBC 可让Java通过程序操作关系型数据库 JDBC 基于驱动程序实现与数据库的连接 ...

  6. 转:ORACLE的JDBC连接方式:OCI和THIN

    oracle的jdbc连接方式:oci和thin oci和thin是Oracle提供的两套Java访问Oracle数据库方式. thin是一种瘦客户端的连接方式,即采用这种连接方式不需要安装oracl ...

  7. 创建达梦到Oracle的DBLINK(OCI方式)

    应用场景: 因业务需求:oracle作为目地端,DM作为使用端,需要在达梦里创建到oracle的dblink连接.以下为实操记录.推荐达梦DBLINK使用Oralce OCI的方式去访问Oracle数 ...

  8. java制作oracle程序,Java程序操作Oracle两种方式之简单实现

    Java程序操作Oracle两种方式之简单实现 1.通过JDBC-ODBC桥连接Oracle数据库 (1)创建odbc源,在控制面板->管理工具->数据源(odbc)中添加DSN,比如取名 ...

  9. java访问oracle集群,JAVA查询Oracle数据库集群连接字符串

    下载必备最新排行装机分类.游戏手机驱动源码LinuxMac小游戏.商城招聘百科知道软件盒子论坛3G版 本站搜索 新闻资讯 软件下载 当前位置: 网站首页 > 编程开发 > 编程语言 > ...

最新文章

  1. linux root权限_深入了解 Linux 权限
  2. day05 selenium
  3. SUSE团队已将重心偏向GCC 7
  4. 这个 bug 让我更加理解 Spring 单例了
  5. 体验C++20新特性的最简便方法
  6. 计网期末复习 - 数据报分片
  7. ShardingSphere源码解析 初步准备
  8. [转]HttpWatch工具简介及使用技巧
  9. TensorFlow 实战(五)—— 图像预处理
  10. LeetCode - Merge Two Sorted Lists
  11. 蓝桥杯2019年第十届C/C++省赛B组第八题-等差数列
  12. 第三方服务挂了,如何保证服务不受影响?
  13. 频点、带宽、FFT点数、采样率的关系
  14. Unity编辑器下Console面板查看完整打印日志
  15. 哈工大计算机专业复试科目,哈工大 计算机科学与技术学院复试科目.doc
  16. 矩阵与行列式的区别 行列式简单理解(二三阶)
  17. 初识MacBook pro 2016--安装系统(恢复系统)
  18. 一.不同环境下C语言的编译
  19. 运行单独的vue页面
  20. 【技术贴】火狐QQ空间音乐插件下载+火狐进空间没背景音乐崩溃解决+火狐浏览器插件推荐...

热门文章

  1. SQL Server 移动数据库
  2. linux学习笔记-不定时更新
  3. MFC 字符串截取成数组 wcstok
  4. dev-c++官网位置和源码/库位置
  5. 如何在三个月掌握三年的经验
  6. 设计模式学习笔记十:单例模式(Singleton Pattern)
  7. SQL概述及在网络安全中的应用
  8. c语言 int和字母,[求助]从一个包含有字母和数字的文本文件读入INT型变量
  9. java 函数名调用_粉丝提问|c语言:如何定义一个和库函数名一样的函数,并在函数中调用该库函数...
  10. linux设定时间查看文件,查看linux系统,服务,配置文件被修改的时间