当前位置:
文档之家› 实例代码讲解JAVA连接ORACLE数据库的各种方法
实例代码讲解JAVA连接ORACLE数据库的各种方法
大家都知道 JAVA 在跨平台开发与 INTERNET 开发中已经比较流行,ORACLE8i 及以 后的版本中都包含了对在数据库中运行 JAVA 的扩展支持,这里有两种方法可以使用:
JDBC:与 ODBC 类似, JDBC 提供了一个驱动接口使你可以在 JAVA 程序中访问数据库。 注:JDBC 驱动内嵌在数据库中虚拟机中。
Features of ORACLE JDBC Drivers
在 ORACLE8i 中有三种类型的 JDBC 驱动,他们都使用相同的 syntax, APIs, and Oracle extensions,以使 JAVA 代码在 robust clients、Web-based Java applets, and Java stored procedures 之间保持轻便灵活:三种类型如下:
One can oBTain a handle to the default or current connection (KPRB driver) by calling the OracleDriver.defaultConenction() method. Please note that you do not need to specify a database URL, username or password as you are already connected to a database session. Remember not to close the default connection. Closing the default connection might throw an exception in future releases of Oracle.
try { Class.forName ("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) { e.printStackTrace();
}
Connection conn = DriverManager.getConnection ("jdbc:oracle:oci8:@ORA1", "scott", "tiger"); // or oci9 @Service, userid, password
Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@dbhost:1521:ORA1", "scott", "tiger"); // @machine:port:SID, userid, password
Statement stmt = conn.createStatement(); ResultSet rset = stmt.executeQuery (
JAVA 与 Oracle 的接口: 在数据库中运行 JAVA 可以说是 ORACLE8i 的最令人激动的新特性。在你创建的使用
ORACLE8i 数据库的应用程序中,你可以使用与 JAVA 有关的新特征,轻松的将程序发布 到 INTERNET 或 INTRANET 上。
Methods for Using Java in ORACLE
对 JDBC OCI 接口: Fow Windows: 1.安装 Oracle Client. 2.根据 jdk 的版本,设置 CLASSPATH,使其包含正确的 classesxx.zip 3.根据需要设置 CLASSPATH,使其指向 Oracle 的其它 zip 文件 4.设置 PATH,使其包含$ORACLE_HOME\bin 目录
备注: classesxx.zip 一般在 ORACLE_HOME\jdbc\lib 目录下。
释:
在 ORACLE_HOME\jdbc\lib 目录下的与 Oracle JDBC Drives 驱动有关的文件的解
- classes12.zip Classes for use with JDK 1.2.x. It contains the JDBC driver classes except classes necessary for NLS support in Object and Collection types.
One must have Net8 (SQL*Net) installed and working before attempting to use one of the OCI drivers.
import java.sql.*; class dbAccess {
public static void main (String args []) throws SQLException {
如何配置使 JAVA 可以通过 Oracle JDBC Drivers 连接到数据库:1.安装 Sun JDK. 2. 修改 PATH 环境变量,使其指向 JDK 的 bin 目录 3. 设置 CLASSPATH 环境变量,使其指向正确的 JDK 的 lib 及 oracle 的 JDBC 接口。 CLASSPATH = ".;????" 3. 运行"java –version" ,验证 java 的版本。
For unix: 1.安装 Oracle Client. 2.根据 jdk 的版本,设置 CLASSPATH,使其包含正确的 classesxx.zip 3.根据需要设置 CLASSPATH,使其指向 Oracle 的其它 zip 文件 4.设置 LD_LIBRARY_PATH,使其包含$ORACLE_HOME/lib 目录
(applets). It is smaller and slower than the OCI drivers. import java.sql.*;
class dbAccess { public static void main (String args []) throws SQLException { DriverManager.registerDriver ( new oracle.jdbc.driver.OracleDriver() );
* JDBC 2.0 * Partial JDBC 3.0 (in JDBC driver version 9.2) * the same syntax and APIs * the same Oracle extensions 主要是 JDBC OCI 接口比 JDBC THIN 接口效率高!
How does one connect with the JDBC Thin Driver? The the JDBC thin driver provides the only way to Access Oracle from the Web
JDBC OCI:
Connection conn= DriverManager.getConnection ("jdbc:oracle:oci8[9]:@RAC","scott","tiger");
Net Service
JDBC THIN 与 JDBC THIN 对比: 相同之处:
The JDBC Thin, JDBC OCI, and JDBC Server drivers all provide the same functionality. They all support the following standards and features:
"select BANNER from SYS.V_$VERSION" ); while (rset.next())
System.out.println (rset.getString(1)); // Print col 1 stmt.close(); } } How does one connect with the JDBC OCI Driver?
SQLJ:是一个 JAVA 预编译器,它可以将内嵌的 SQL 语句转化为 JAVA 语句.SQLJ 的使 用与运行机理与其它 ORACLE 的与编译器(如 Pro*C,Pro*COBOL)类似。实际上,为了 使我们形象的记住 SQLJ 提供的功能,我们也可以直接将 SQLJ 改名为 Pro*Java。
JDBC 连接数据库的riverManager.getConnection ("jdbc:oracle:thin:@dlsun511:1521:ora1","scott","tiger");
machine(ip@) : port# : sid
3.JDBC KPRB: 这种驱动由直接存储在数据库中的 JAVA 程序使用,如 Java Stored Procedures 、triggers、Database jsp's。It uses the default/ current database session and thus requires no additional database username, passWord or URL.
- nls_charset12.zip NLS classes for use with JDK 1.2.x. It contains classes necessary for NLS support in Object and Collection types.
- classes12_g.zip Same as classes12.zip, except that classes were compiled with "javac -g".
将 JAVA 集成到数据库中是双向的。也就是说你可以在 JAVA 中调用 SQL 与 PL/SQL, 也可以在 SQL 与 PL/SQL 中调用 JAVA。JAVA 程序可以直接通过 JDBC 驱动调用 SQL 与 PL/SQL,反过来,你也可以在 SQL 与 PL/SQL 中直接调用 JAVA。在数据库中,JAVA 命名 空间直接映射到数据库模式的命名空间中,这样可以方便 JAVA 的存取与调用。数据库同时 提供扩展的 DDL 语句,通过这些语句,你可以象创建一个存储过程一样在数据中创建内嵌 的 JAVA 程序。