




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java连接Oracle数据库的各种方法 java与oracle的接口:在数据库中运行JAVA可以说是ORACLE8i的最令人激动的新特性。在你创建的使用ORACLE8i 数据库的应用程序中,你可以使用与JAVA有关的新特征,轻松的将程序发布到INTERNET或INTRANET上。Methods for Using Java in ORACLE大家都知道JAVA在跨平台开发与INTERNET开发中已经比较流行,ORACLE8i及以后的版本中都包含了对在数据库中运行JAVA的扩展支持,这里有两种方法可以使用:JDBC:与ODBC类似, JDBC 提供了一个驱动接口使你可以在JAVA程序中访问数据
2、库。注: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命名空间直
3、接映射 到数据库模式的命名空间中,这样可以方便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之间保持轻便灵活:三种类型如下:1JDBCOCI: 此驱动类似于传统的ODB
4、C 驱动。因为它需要Oracle Call Interface and Net8,所以它需要在运行使用此驱动的JAVA程序的机器上安装客户端软件2JDBC Thin: 这种驱动一般用在运行在WEB浏览器中的JAVA程序。它不是通过OCI or Net8,而是通过Java sockets进行通信 ,因此不需要在使用JDBC Thin的客户端机器上安装客户端软件。 3JDBC KPRB: 这种驱动由直接存储在数据库中的JAVA程序使用,如Java Stored Procedures 、triggers、Database JSPs。It uses the default/ current datab
5、ase 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下
6、的设置方法一样: 1根据jdk的版本,只需要将classesxx.zip拷贝到指定的目录,不需要安装Oracle Client。在装完数据库后,该文件会在$ORACLE_HOME/jdbc/lib目录下。2设置CLASSPATH,使其包含上面的 classesxx.zip3根据需要,拷贝oracle的其它zip文件并设置CLASSPATH对JDBC OCI接口:Fow Windows:1安装Oracle Client.2根据jdk的版本,设置CLASSPATH,使其包含正确的classesxx.zip3根据需要设置CLASSPATH,使其指向Oracle的其它zip文件4设置PATH,使其包含
7、$ORACLE_HOMEbin目录For unix:1安装Oracle Client.2根据jdk的版本,设置CLASSPATH,使其包含正确的classesxx.zip3根据需要设置CLASSPATH,使其指向Oracle的其它zip文件4设置LD_LIBRARY_PATH,使其包含$ORACLE_HOME/lib目录备注:classesxx.zip一般在ORACLE_HOMEjdbclib目录下。 在ORACLE_HOMEjdbclib目录下的与Oracle JDBC Drives驱动有关的文件的解释:- classes12.zip Classes for use with JDK 1.2
8、.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 cl
9、asses 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
10、:oci89: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 sa
11、me 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 sta
12、tic void main (String args ) throws SQLExceptionDriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver();Connection conn = DriverManager.getConnection(jdbc:oracle:thin:dbhost:1521:ORA1, scott, tiger);/ machine:port:SID, userid,passwordStatement stmt = conn.createStatement();ResultSet rset
13、 = stmt.executeQuery (select BANNER from SYS.V_$VERSION);while (rset.next() System.out.println (rset.getString(1); / Print col 1stmt.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
14、 clipboard import java.sql.*;class dbAccess public static void main (String args ) throws SQLExceptiontry Class.forName (oracle.jdbc.driver.OracleDriver); catch (ClassNotFoundException e) e.printStackTrace();Connection conn = DriverManager.getConnection (jdbc:oracle:oci8:ORA1, scott, tiger);/ or oci
15、9 Service, userid,passwordStatement stmt = conn.createStatement();ResultSet rset = stmt.executeQuery (select BANNER from SYS.V_$VERSION);while (rset.next()System.out.println (rset.getString(1); / Print col 1stmt.close(); How does one connect with the JDBC KPRB Driver? One can obtain a handle to the
16、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 cl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江苏扬州人才集团下属企业招聘6人笔试备考试题及1套参考答案详解
- 2025江苏徐州市中心医院招聘高层次卫生人才31人笔试备考题库附答案详解
- 2025江苏扬州宝应县“乡村振兴青年人才”招聘67人笔试备考题库及参考答案详解1套
- 2025广东选拔汕头市市级乡村振兴人才80人笔试备考题库参考答案详解
- 2025河北邯郸市峰峰矿区招聘农村党务(村务)工作者157人笔试备考试题及1套参考答案详解
- 2025年部编版语文四年级下册第一次月考测试题附答案
- 2025年宝鸡市公务员考试行测试卷历年真题参考答案详解
- 2025年注册环保工程师之注册环保工程师专业基础能力提升试卷A卷附答案
- 幼儿故事淡蓝的元旦旅程
- 房地产项目管理中的安全隐患控制
- 2023年-2024年电子物证专业考试复习题库(含答案)
- 汽车电动助力转向系统发展综述外文文献翻译、中英文翻译、外文翻译
- 科技发展对生活的影响课件
- Unit 2 Beethoven a remarkable life Extended Reading 公开课说课课件-2022-2023学年高中英语牛津译林版(2020)选择性必修第一册
- 免于现场检查的申请书
- 鲁美版美术鉴赏教材第一课《美术作品的特征》课件设计
- 电机过程检验规程
- 国开学习网电大数据库应用技术第四次形考作业实验答案
- 第七讲 社会主义现代化建设的教育科技人才战略PPT习概论2023优化版教学课件
- 上海市2023年初中毕业物理课程终结性评价指南
- 中国教师发展基金会国家教师科研基金规划全国重点课题实施指南
评论
0/150
提交评论