Oracle provides four different types of JDBC drivers, for use in
different deployment scenarios. The 10.1.0 drivers can access Oracle
8.1.7 and higher. While all Oracle JDBC drivers are similar, some
features apply only to JDBC OCI drivers and some apply only to the JDBC
Thin driver.
JDBC OCI client-side driver: This is a JDBC Type 2 driver that uses
Java native methods to call entrypoints in an underlying C library. That
C library, called OCI (Oracle Call Interface), interacts with an Oracle
database. The JDBC OCI driver requires an Oracle client installation of
the same version as the driver.
The use of native methods makes the JDBC OCI driver platform
specific. Oracle supports Solaris, Windows, and many other platforms.
This means that the Oracle JDBC OCI driver is not appropriate for Java
applets, because it depends on a C library.
Starting from 10.1.0, the JDBC OCI driver is available for install
with the OCI Instant Client feature, which does not require a complete
Oracle client-installation. Please refer to Oracle Call Interface for
more information.
JDBC Thin client-side driver: This is a JDBC Type 4 driver that uses
Java to connect directly to Oracle. It implements Oracle's SQL*Net Net8
and TTC adapters using its own TCP/IP based Java socket implementation.
The JDBC Thin driver does not require Oracle client software to be
installed, but does require the server to be configured with a TCP/IP
listener.
Because it is written entirely in Java, this driver is
platform-independent. The JDBC Thin driver can be downloaded into any
browser as part of a Java application. (Note that if running in a client
browser, that browser must allow the applet to open a Java socket
connection back to the server.)
JDBC Thin server-side driver: This is another JDBC Type 4 driver
that uses Java to connect directly to Oracle. This driver is used
internally within the Oracle database. This driver offers the same
functionality as the client-side JDBC Thin driver (above), but runs
inside an Oracle database and is used to access remote databases.
Because it is written entirely in Java, this driver is
platform-independent. There is no difference in your code between using
the Thin driver from a client application or from inside a server.
连接方式有以下几种:
Oralce provides four types of JDBC driver.
Thin Driver, a 100% Java driver for client-side use without an
Oracle installation, particularly with applets. The Thin driver type is
thin. To connect user scott with password tiger to a database with SID
(system identifier) orcl through port 1521 of host myhost, using the
Thin driver, you would write :
Connection conn = DriverManager.getConnection
("jdbc:oracle:thin:@myhost:1521:orcl", "scott", "tiger");
OCI Driver for client-side use with an Oracle client installation.
The OCI driver type is oci. To connect user scott with password tiger to
a database with SID (system identifier) orcl through port 1521 of host
myhost, using the OCI driver, you would write :
Connection conn = DriverManager.getConnection
("jdbc:oracle:oci:@myhost:1521:orcl", "scott", "tiger");
Note that you can also specify the database by a TNSNAMES entry. You
can find the available TNSNAMES entries listed in the file tnsnames.ora
on the client computer from which you are connecting. For example, if
you want to connect to the database on host myhost as user scott with
password tiger that has a TNSNAMES entry of MyHostString, enter:
Connection conn = DriverManager.getConnection
("jdbc:oracle:oci8:@MyHostString","scott","tiger");
If your JDBC client and Oracle server are running on the same
machine, the OCI driver can use IPC (InterProcess Communication) to
connect to the database instead of a network connection. An IPC
connection is much faster than a network connection.
Connection conn = DriverManager.getConnection
("jdbc:oracle:oci8:@","scott","tiger");
Server-Side Thin Driver, which is functionally the same as the
client-side Thin driver, but is for code that runs inside an Oracle
server and needs to access a remote server, including middle-tier
scenarios. The Server-Side Thin driver type is thin and there is no
difference in your code between using the Thin driver from a client
application or from inside a server.
Server-Side Internal Driver for code that runs inside the target
server, that is, inside the Oracle server that it must access. The
Server-Side Internal driver type is kprb and it actually runs within a
default session. You are already "connected". Therefore the connection
should never be closed.
To access the default connection, write:
DriverManager.getConnection("jdbc:oracle:kprb:");
or:
DriverManager.getConnection("jdbc:default:connection:");
You can also use the Oracle-specific defaultConnection() method of the OracleDriver class which is generally recommended:
OracleDriver ora = new OracleDriver();
Connection conn = ora.defaultConnection();
Note: You are no longer required to register the OracleDriver class
for connecting with the Server-Side Internal driver, although there is
no harm in doing so. This is true whether you are using getConnection()
or defaultConnection() to make the connection.
Any user name or password you include in the URL string is ignored
in connecting to the server default connection. The
DriverManager.getConnection() method returns a new Java Connection
object every time you call it. Note that although the method is not
creating a new physical connection (only a single implicit connection is
used), it is returning a new object.
Again, when JDBC code is running inside the target server, the
connection is an implicit data channel, not an explicit connection
instance as from a client. It should never be closed.
Oracle链接数据库的四种方式(thin和oci)
最新推荐文章于 2021-04-05 19:06:32 发布