Oracle中Thin和OCI的区别

官方地址:https://docs.oracle.com/en/database/oracle/oracle-database/19/jajdb/oracle/jdbc/OracleDriver.html

翻译一下

getConnection(字符串URL);

其中URL的格式为:

jdbc:oracle:<drivertype>:<user>/<password>@<database>

下面的示例使用OCI驱动程序将密码为tiger的用户scott连接到主机myhost上的数据库。但是,在本例中,URL包含用户id和密码,并且是唯一的输入参数。

Connection conn = DriverManager.getConnection("jdbc:oracle:oci8:scott/tiger@myhost");

如果要连接精简驱动程序,必须指定端口号和SID。例如,如果要连接到主机myhost上的数据库,该主机在端口1521上有一个TCP/IP侦听器,并且SID(系统标识符)是orcl:

Connection conn = DriverManager.getConnection("jdbc:oracle:thin:scott/tiger@myhost:1521:orcl");

二者区别

Oracle provides four types of JDBC driver.

Thin Driver

一个100%的Java驱动程序,用于客户端,无需安装Oracle,尤其是小程序

瘦驱动程序类型是瘦的,要通过主机myhost的端口1521将用户scott和password tiger连接到一个带有SID(系统标识符)orcl的数据库

Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@myhost:1521:orcl", "scott", "tiger");

OCI Driver 

用于Oracle客户端安装的客户端使用,OCI驱动程序类型为OCI。

要使用OCI驱动程序通过主机myhost的端口1521将密码为tiger的用户scott连接到具有SID(系统标识符)orcl的数据库

Connection conn = DriverManager.getConnection("jdbc:oracle:oci:@myhost:1521:orcl", "scott", "tiger");

注意,还可以通过TNSNAMES条目指定数据库

可以将文件中列出的可用TNSNAMES条目tnsnames.ora公司在您所连接的客户端计算机上。

例如,如果要以用户scott的身份连接到主机myhost上的数据库,其密码tiger的TNSNAMES条目为MyHostString

Connection conn = DriverManager.getConnection("jdbc:oracle:oci8:@MyHostString","scott","tiger");

如果JDBC客户机和Oracle服务器在同一台机器上运行,则OCI驱动程序可以使用IPC(进程间通信)连接到数据库,而不是使用网络连接

IPC连接比网络连接快得多

Connection conn = DriverManager.getConnection("jdbc:oracle:oci8:@","scott","tiger");

Oracle提供了四种不同类型的JDBC驱动程序,用于不同的部署场景。

10.1.0驱动程序可以访问Oracle 8.1.7及更高版本。

虽然所有的oraclejdbc驱动程序都是相似的,但有些特性只适用于JDBC OCI驱动程序,有些特性只适用于JDBC瘦驱动程序。

JDBCOCI客户端驱动程序:这是一个JDBCType2驱动程序,它使用Java本机方法调用底层C库中的入口点。

这个名为OCI(Oracle调用接口)的C库与Oracle数据库交互。JDBC OCI驱动程序需要安装与该驱动程序版本相同的Oracle客户端。

本机方法的使用使得JDBC OCI驱动程序平台特定。Oracle支持Solaris、Windows和许多其他平台。这意味着oraclejdbcoci驱动程序不适合于javaapplet,因为它依赖于C库。

从10.1.0开始,JDBC OCI驱动程序可以与OCI即时客户端功能一起安装,而不需要完整的Oracle客户端安装。有关详细信息,请参阅Oracle调用接口。

JDBC瘦客户端驱动程序:这是一个jdbctype4驱动程序,它使用Java直接连接到Oracle。

它使用自己的基于TCP/IP的Java套接字实现来实现Oracle的SQL*Net8和TTC适配器。JDBC瘦驱动程序不要求安装Oracle客户机软件,但要求服务器配置TCP/IP侦听器。

因为它完全是用Java编写的,所以这个驱动程序是独立于平台的。

JDBC瘦驱动程序可以作为Java应用程序的一部分下载到任何浏览器中。(请注意,如果在客户端浏览器中运行,则该浏览器必须允许小程序打开一个Java套接字连接回服务器。)

JDBC瘦服务器端驱动程序:这是另一个jdbcType4驱动程序,它使用Java直接连接到Oracle。此驱动程序在Oracle数据库内部使用。此驱动程序提供了与客户端JDBC瘦驱动程序(如上)相同的功能,但运行在Oracle数据库中,用于访问远程数据库。

因为它完全是用Java编写的,所以这个驱动程序是独立于平台的。从客户机应用程序或服务器内部使用精简驱动程序在代码中没有区别。

论读书
睁开眼,书在面前
闭上眼,书在心里
原文地址:https://www.cnblogs.com/YC-L/p/14611716.html