ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。
一个基于ODBC的应用程序对数据库的 *** 作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库 *** 作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。
一个完整的ODBC由下列几个部件组成:
应用程序(Application)。
ODBC管理器(Administrator)。该程序位于Windows 95控制面板(Control Panel)的32位ODBC内,其主要任务是管理安装的ODBC驱动程序和管理数据源。
驱动程序管理器(Driver Manager)。驱动程序管理器包含在ODBC32DLL中,对用户是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部件。
ODBC API。
ODBC 驱动程序。是一些DLL,提供了ODBC和数据库之间的接口。
数据源。数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。
各部件之间的关系如图下图所示:
应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。
在ODBC中,ODBC API不能直接访问数据库,必须通过驱动程序管理器与数据库交换信息。驱动程序管理器负责将应用程序对ODBC API的调用传递给正确的驱动程序,而驱动程序在执行完相应的 *** 作后,将结果通过驱动程序管理器返回给应用程序。
在访问ODBC数据源时需要ODBC驱动程序的支持。用Visual C++ 50安装程序可以安装SQL Server、 Access、 Paradox、 dBase、 FoxPro、 Excel、 Oracle 和Microsoft Text等驱动程序.在缺省情况下,VC50只会安装SQL Server、 Access、 FoxPro和dBase的驱动程序.如果用户需要安装别的驱动程序,则需要重新运行VC 50的安装程序并选择所需的驱动程序。
参考资料:
1最简单的办法,采用两套链接。
因为,一个是7,每一个是10的话,你链接的应该是两个数据库实例。
那么你可以写一个类似于数据处理分发器的东西,通过一些类型判断使用那个链接,但是从上层用户角度看来,好像就是一个数据库。
2这个方法,就是,通过oracle之间建立数据链,这样,你就可以相当于吧两个数据库的信息整合到一起,然后通过一个驱动链接
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
oracle有很多版本。现在一般用oracle9i数据库
如果联接oracle9i的话,你要去网上下载一个oracle9i的驱动包。不下载的话在oracle9i的安装目录下面有一个自带的class12jar包。这个就是驱动包了你也可以用自带的包
如果用oracle10g的话就去网上下载一个驱动包,这是包的问题
联接数据库的话就些代码吧
以上就是关于如何安装oracle的odbc驱动全部的内容,包括:如何安装oracle的odbc驱动、怎样将oracle11的驱动jar包导入到eclipse、oracle jdbc驱动包兼容性问题,我要同时连接oracle7和oracle10,有没有通用的jdbc驱动包等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)