如何连接oracle数据库网络技术
71
Java访问Oracle的分析与实现
◆◆袁定治
摘要:数据库连接是软件开发中的基本问题之一,本文详细论述了Java应用程序对Oracle数据库访问的两种方式,并对各种实现方式进行了分析、实现和对比。
关键字:Java Oracle JDBC
Analysis and Realization of the access to Oracle by Java
Yuan Dingzhi
(Jiangxi Vocational and Technical Collage of Information Application 330043)
Abstract: Database connection is one of the fundamental issues of software development. This paper offers a detailed discussion about the two approaches for access Oracle database by Java application, a
nd then supply analysis, realization and comparison.
Key Words: Java Oracle JDBC 1◆◆引言
在使用Java语言开发各种应用程序时,有一个最基本的操作就是如何实现对各种数据库的访问。而Oracle作为目前市面上最流行的大型数据库,功能极其强大,相比于其他数据库在存储、性能和效率各方面都存在巨大的优势,尤其是在2009年Oracle公司收购Sun公司之后,Java语言和Oracle数据库的联系就越发的紧密了,故此对于Java语言如何实现对Oracle数据库的访问就成了Java应用开发的重要问题之一,下面就Java访问Oracle数据库的两种进行分析与实现。2◆◆JDBC访问数据库的方式
JDBC是Java语言中连接数据库的标准接口技术,它是支持基本SQL功能的通用的、底层的应用程序编程接口。JDBC的全称是Java Database Connectivity,即Java数据库连接,JDBC 由一组用Java语言编写的类和接口组成。JDBC将各种数据库的差异对Java程序屏蔽起来,Java程序可以使用同样可移植的接口访问各种数据库。
JDBC主要有两类接口:面向程序开发人员的JDBC API和面向JDBC驱动程序的JDBC DRIVER API。前者是开发人员用来编写前端应用程序的,封装在JAVA API的java.sql包中;后者是由数据库厂商开发的需要厂商额外的提供技术支持。3◆◆Java访问Oracle数据库的分析与实现
笔者根据长期实践教学及开发经验来看,Java访问Oracle 数据库主要有以下两种方式:
3.1 使用thin连接访问
thin驱动都是纯Java代码,其使用TCP/IP技术通过Java 的Socket连接Oracle数据库,所以thin驱动是与平台无关。无需安装Oracle客户端,只需要下载一个thin驱动的jar包(Oracle 10g及以后的版本,可在Oracle服务器安装目录下的product\jdbc\lib文件夹中到),并且在Java应用开发中加入thin驱动就可以了,当然也可以将驱动路径设置到环境变量CLASSPATH中。实现代码如下:
Class.forName("oracle.jdbc.driver.OracleDriver");String url="jdbc:oracle:thin:@localhost:1521:orcl";Connection conn = Connection (url, "user", "password");
String sql="select * from student";
PreparedStatement stmt=conn.prepareStatement(sql);ResultSet uteQuery();()){
//对表格数据的操作}
在上面代码中,字符串url中的@后直接输入数据库IP 地址(上面代码由于访问的是本机Oracle数据库,故此为localhost)即可。
3.2 使用OCI(Oracle Call Interface)连接访问
使用OCI连接数据库是企业级的做法,适应于单个数据库和集数据库,性能非常优越,尤其是连接池功能大大提高了应用程序的性能和并发量。缺点是,若想使用OCI必须要安装Oracle客户端。安装完Oracle客户端后,安装目录里jdbc\lib 文件夹下就包含了OCI驱动,也可不必去网上下载。在Java应用开发中加入OCI驱动就可以直接使用了,当然也可以将驱动路径设置到环境变量CLASSPATH中。实现代码如下所示:
Class.forName("oracle.jdbc.driver.OracleDriver");String url="jdbc:oracle:oci:@orcl";
Connection conn = Connection (url, "user", "password");
String sql="select * from student";
PreparedStatement stmt=conn.prepareStatement(sql);ResultSet uteQuery();()){
//对表格数据的操作}
当然采用以上2种方式都是最基本的访问Oracle数据库的方法,为了进一步提高访问效率,提倡使用数据库连接池技术,笔者在此就不再絮叨了。4◆◆两种实现方式的对比
从应用角度来说,OCI须在客户机上安装Oracle客户端后才能连接,而thin就不需要,故从应用上来讲thin还是更加方便,移植性更好,这也是thin比较常见的原因。
从原理上来看,thin是纯Java实现TCP/IP的C/S通讯方式;而OCI方式,客户端通过Native Java Method调用C Library 访问服务端,而这C Library就是OCI,因此这个OCI总是需要随着Oracle客户端安装。
从驱动类别来看,OCI是JDBC第二类驱动,thin是JDBC第四类驱动,但它们在功能上并无差异。
从效率上来说,OCI的速度快于thin,因为它借助了Oracle客户端工具。
从代码实现上来看,除访问数据库的URL不一样外,其它的代码完全一致。5◆◆总结
数据库访问操作是应用程序开发的重要组成部分,通过Java程序访问Oracle数据库的两种方式的分析、实现与对比,可以让Java程序与Oracle数据库的联合开发取得更好的效果,为开发中选择方式模式提供了有力的依据。作者简介:
袁定治,(1979~),男,讲师,研究方向:系统分析与设计、软件开发。
◆◆◆◆◆◆◆◆◆◆◆◆◆(江西信息应用职业技术学院◆江西◆南昌◆330043)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论