Java程序使用OCI驱动连接Oracle数据库

Java程序使用OCI驱动连接Oracle数据库,第1张

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

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

jdbc oracle thin @ shdb

改成

jdbc oracle oci @shdb

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

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

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

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

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

把%ORACLE_HOME%\jdbc\lib\classes jar加到CLASSPATH环境变量里 也可以把classes jar拷贝到tomcat的man\lib目录下

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

把d \instantclient_ _ 加到PATH环境变量

把d \instantclient_ _ \classes jar加到CLASSPATH环境变量里 也可以把classes jar拷贝到tomcat的man\lib目录下

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

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

exprot ORACLE_HOME=/u /app/oracle/product/

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

把classes jar拷贝到tomcat的man\lib目录下

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

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

exprot ORACLE_HOME=/instantclient_ _

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

把instantclient_ _ 目录下的classes jar拷贝到tomcat的man\lib目录下

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

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

SHDB =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = )))

lishixinzhi/Article/program/Java/hx/201311/27111

在打开数据库连接之前,必须首先在Java程序注册Oracle JDBC驱动程序。注册Oracle JDBC驱动程序有两种方法:

● 使用javalangClass类中的forName()方法

● 使用JDBC DriverManager类中的registerDriver()方法

下例显示了forName()方法的用法:

ClassforName("oraclejdbcOracleDriver");

第二种注册Oracle JDBC驱动程序的方法是使用javasqlDriverManager类中的registerDriver()方法,如下例所示:

DriverManagerregisterDriver(new oraclejdbcOracleDriver());

注册Oracle JDBC驱动程序完成之后,就可以打开数据库连接。

那现在看看你的数据库驱动注册错误

public void MultiInsertData(DataSet ds)

{

string connt = "Oracle的连接字符串";

string sql = "select id,name,… from tablename";必须与ds中的一致

DataTable dt = dsDefaults[0];

OracleConnection conn = new OracleConnection(connstr);

OracleCommand cmd = new OracleCommand(sql, conn);

connOpen();

OracleDataAdapter da = new OracleDataAdapter(sqlcmd);

OracleCommandBuilder cb = new OracleCommandBuilder(sqlda);

daUpdate(dt);

connClose();

sqlconnDispose();

}

用这个批量进行导入,速度快,而且方便呀

代码都太大了都是一个工程的。15M,

说下思路,写4个class,一个用来画主界面,一个用来处理逻辑 *** 作,一个用来增加,修改界面,一个用来处理增加,修改逻辑。

主界面类用3个panle,北,中,南,上面放查询控件,查询按钮,中间放table,下面放其他按钮。

将主界面类作为逻辑处理 *** 作类的一个属性。让他能访问到主界面类中相应的控件。写上对于的控件事件出来就可以了。

以上就是关于Java程序使用OCI驱动连接Oracle数据库全部的内容,包括:Java程序使用OCI驱动连接Oracle数据库、谁知到我的java代码怎么错了,为什么oracle数据库中的表加载不到我用java建的表上、请问如何把oracle数据库中的数据,导入到access数据库中,通过java代码实现的最好 有满意答案追加30分!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10192516.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存