java与oracle的接口:

在数据库中运行JAVA可以说是ORACLE8i的最令人激动的新特性。在你创建的使用ORACLE8i 数据库的应用程序中,你可以使用与JAVA有关的新特征,轻松的将程序发布到INTERNET或INTRANET上。

Methods for Using Java in ORACLE

大家都知道JAVA在跨平台开发与INTERNET开发中已经比较流行,ORACLE8i及以后的版本中都包含了对在数据库中运行JAVA的扩展支持,这里有两种方法可以使用:

JDBC:与ODBC类似, JDBC 提供了一个驱动接口使你可以在JAVA程序中访问数据库。注:JDBC驱动内嵌在数据库中虚拟机中。

SQLJ:是一个JAVA预编译器,它可以将内嵌的SQL语句转化为JAVA语句.SQLJ的使用与运行机理与其它ORACLE的与编译器(如Pro*C,Pro*COBOL)类似。实际上,为了使我们形象的记住SQLJ提供的功能,我们也可以直接将SQLJ改名为Pro*Java。

将JAVA集成到数据库中是双向的。也就是说你可以在JAVA中调用SQL与PL/SQL,也可以在SQL与PL/SQL中调用JAVA。JAVA程序可以直接通过JDBC驱动调用SQL与PL/SQL,反过来,你也可以在SQL与PL/SQL中直接调用JAVA。在数据库中,JAVA命名空间直接映射到数据库模式的命名空间中,这样可以方便JAVA的存取与调用。数据库同时提供扩展的DDL语句,通过这些语句,你可以象创建一个存储过程一样在数据中创建内嵌的JAVA程序。

Features of ORACLE JDBC Drivers

在ORACLE8i中有三种类型的JDBC驱动,他们都使用相同的 syntax, APIs, and Oracle extensions,以使JAVA代码在robust clients、Web-based Java applets, and Java stored procedures之间保持轻便灵活:三种类型如下:

1.JDBC OCI: 此驱动类似于传统的ODBC 驱动。因为它需要Oracle Call Interface and Net8,所以它需要在运行使用此驱动的JAVA程序的机器上安装客户端软件

2.JDBC Thin: 这种驱动一般用在运行在WEB浏览器中的JAVA程序。它不是通过OCI or Net8,而是通过Java sockets进行通信 ,因此不需要在使用JDBC Thin的客户端机器上安装客户端软件。

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.

如何配置使JAVA可以通过Oracle JDBC Drivers连接到数据库:1.安装Sun JDK.

2. 修改PATH环境变量,使其指向JDK的bin目录

3. 设置CLASSPATH环境变量,使其指向正确的JDK的lib及oracle的JDBC接口。

CLASSPATH = ".;????"

3. 运行"java –version" ,验证java的版本。

如何在不同的操作系统上根据接口类型设置客户端:

对JDBC THIN接口:

在windows与unix下的设置方法一样:

1.根据jdk的版本,只需要将classesxx.zip拷贝到指定的目录,不需要安装Oracle Client。在装完数据库后,该文件会在$ORACLE_HOME/jdbc/lib目录下。2.设置CLASSPATH,使其包含上面的classesxx.zip

3.根据需要,拷贝oracle的其它zip文件并设置CLASSPATH

对JDBC OCI接口:

Fow Windows:

1.安装Oracle Client.

2.根据jdk的版本,设置CLASSPATH,使其包含正确的classesxx.zip

3.根据需要设置CLASSPATH,使其指向Oracle的其它zip文件

4.设置PATH,使其包含$ORACLE_HOME\bin目录

For unix:

1.安装Oracle Client.

2.根据jdk的版本,设置CLASSPATH,使其包含正确的classesxx.zip

3.根据需要设置CLASSPATH,使其指向Oracle的其它zip文件

4.设置LD_LIBRARY_PATH,使其包含$ORACLE_HOME/lib目录

备注:

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.

- 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".

JDBC连接数据库的语法:

JDBC THIN:

Code: [Copy to clipboard]

Connection conn=

DriverManager.getConnection

("jdbc:oracle:thin:@dlsun511:1521:ora1","scott","tiger");

|    |   |

machine(ip@) : port# : sid

JDBC OCI:

Code: [Copy to clipboard]

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:

* 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 (applets). It is smaller and slower than the OCI drivers.

import java.sql.*;

Code: [Copy to clipboard]

class dbAccess {

public static void main (String args []) throws SQLException

{

DriverManager.registerDriver (

new oracle.jdbc.driver.OracleDriver()

);

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 (

"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?

One must have Net8 (SQL*Net) installed and working before attempting to use one of the OCI drivers.

Code: [Copy to clipboard]

import java.sql.*;

class dbAccess {

public static void main (String args []) throws SQLException

{

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

Statement stmt = conn.createStatement();

ResultSet rset = stmt.executeQuery (

"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 KPRB Driver?

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.

import java.sql.*;

Code: [Copy to clipboard]

class dbAccess {

public static void main (String args []) throws SQLException

{

Connection conn = (new

oracle.jdbc.driver.OracleDriver()).defaultConnection();

Statement stmt = conn.createStatement();

ResultSet rset = stmt.executeQuery (

"select BANNER from SYS.V_$VERSION"

);

java 如何连接oracle_oracle教程之java连接oracle_java如何连接oracle数据库?相关推荐

  1. BeagleBone Black教程之BeagleBone Black设备的连接

    BeagleBone Black教程之BeagleBone Black设备的连接 BeagleBone Black开发前需要准备的材料 经过上面的介绍,相信你已经对BeagleBone有了大致的了解, ...

  2. 【Linux】手把手教你在 Linux 环境下部署 Oracle 数据库!

    来源:公众号[杰哥的IT之旅] 作者:三笠 相信大家第一次接触 Oracle 数据库时,大多数是在 windows 环境下安装,方便快捷,基本上可以说是一直下一步就能顺利安装成功.然而企业级的数据库, ...

  3. java jni helloword_JNI入门教程之HelloWorld篇

    JNI入门教程之HelloWorld篇 来源:互联网  宽屏版  评论 2008-05-31 09:07:11 本文讲述如何使用JNI技术实现HelloWorld,目的是让读者熟悉JNI的机制并编写第 ...

  4. Java基础教程之Java简介

    一. Java到底是什么? Java是一门全球范围内使用最广泛的,面向对象的编程语言.Java语言具有功能强大和简单易用两个特征,它作为面向对象编程语言系列的代表,极好地实现了面向对象理论,允许程序员 ...

  5. 千锋教育威哥学Java教程之Java基础学习路线

    一. Java到底是什么? Java是一门全球范围内使用最广泛的,面向对象的编程语言.Java语言具有功能强大和简单易用两个特征,它作为面向对象编程语言系列的代表,极好地实现了面向对象理论,允许程序员 ...

  6. W ndows7有线网络连接,七仔教你学Windows7:如何连接网络 爱问知识人

    [IT168 实用技巧]朋友,你还在坚守"XP"吗?你还在忍受"Vista"吗?为什么不试试Windows 7?只要你曾领略她卓越的性能.华丽的外表,就一定会为 ...

  7. win7网络两个计算机名,两台电脑怎么连接局域网,教您两台电脑怎么连接局域网...

    在现实工作或生活当中经常会遇到此问题.有可能你是需要两台电脑连局域网互传文件,用于两台连脑联网打游戏,或别的,总之两台电脑连接局域网应该还是很常用的需要,怎么搞咧?下面,小编给大家介绍两台电脑连接局域 ...

  8. oracle左连接没用_一周零基础学完Oracle数据库第三天02

    四. 多表查询 1 什么是多表查询 多表查询:当查询的数据并不是来源一个表时,需要使用多表链接操作完成查询.根据 不同表中的数据之间的关系查询相关联的数据. 多表链接方式: 内连接:连接两个表,通过相 ...

  9. xml教程之java解析xml文档

    1.java解析xml文件介绍 XML解析方式分为两种:DOM方式和SAX方式 DOM:Document Object Model,文档对象模型.这种方式是W3C推荐的处理XML的一种方式. SAX: ...

最新文章

  1. pbewithmd5anddes算法 对应.net_文本相似度算法之-simhash
  2. python代码统计字符串中大写字符、小写字符、特殊字符以及数值字符出现的次数
  3. Linux网络服务-Web Service之【HTTP协议简介】(一)
  4. jQuery UI Autocomplete示例(一)
  5. LeetCode String Compression
  6. 【AcWing 235. 魔法珠
  7. struts2、hibernate工作原理和流程
  8. java动态修改class_Java Agent入门学习之动态修改代码
  9. Generation I--组合数和数学
  10. java基础知识体系
  11. 【mysql】触发器的实例详解
  12. 联想 M7600d 激光一体机清零方法
  13. RFC 5627 SIP中文翻译
  14. 【电商吧 - 3】支付第一步,支付宝网页支付!
  15. matlab 均生函数,Matlab 的fspecial函数用法
  16. 相亲遇到喜欢的IT男有感
  17. 论作业成本法在中小酒店的应用中存在的问题及对策
  18. 如何在linux CentOS中安装cPanel和WHM
  19. 如何运用Knald烘焙纹理来快速呈现材质纹理细节!
  20. 教程篇(6.4) 05. 集成 ❀ SD-WAN ❀ Fortinet 网络安全架构师 NSE7

热门文章

  1. 完全二叉树和满二叉树的区别
  2. 荒岛余生1java游戏下载_荒岛余生游戏下载-荒岛余生手游下载v1.1 安卓版-单机手游网...
  3. 用java实现模拟聊天室
  4. layer.load 加载
  5. 毕业论文排版素材大学计算机基础,大学计算机基础 排版素材(1页)-原创力文档...
  6. 任务计划执行结果0x0 0x1 0x4的意思与win2008系统计划任务用法
  7. java多线程并发之旅-20-同步工具类。闭锁/栅栏/信号量/阻塞队列/FutureTask
  8. 高性能的连接管理和数据路由组件,OceanBase 生态工具 ODP 详解
  9. 空天地一体化应急通信研究
  10. ffmpeg‘不是内部或外部命令,也不是可运行的程序 或批处理文件。