Oracle数据库中自带Java的简单应用

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:zl168
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:Oracle数据库对Java提供了很好的支持,详细介绍了在Windows系统环境下如何配置Oracle自带的Java开发环境,以及如何通过Java实现对Oracle数据库进行简单的查询和插入操作的方法。
  关键词:Oracle;Java;查询;插入
  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)25-1373-02
  The Simple Apply Of Java in Oracle Database
  WANG Fei, BAI Gai-chao
  (63655 Unit, Wulumuqi 841700, China)
  Abstract: Oracle database provided a good support on Java, described in detail in the Windows operating system environment how to configure Oracle’s own Java development environment, and how to use the Java to query and insert in Oracle database.
  Key words: Oracle; Java; select; insert
  1 引言
  自1995年Java 面世以来,Oracle就一直对Java给予了积极的支持。从Oracle8i开始Oracle就将JVM常驻在服务器上,通过使用Java可以完成许多PL/SQL无法完成的任务。下面将详细介绍在Windows环境下Oracle11g版本中Java的简单应用。
  2 环境配置
  要使用Java进行Oracle数据库的开发需要设置两个环境变量:PATH和CLASSPATH。
  首先,需要将java.exe和javac.exe等可执行文件的路径加入到PATH环境变量中。此路径为Oracle主目录下的\jdk\bin,本机Oracle 11g的此路径为:“D:\app\Administrator\product\11.1.0\db_1\jdk\bin”(注意环境变量中的各个路径以分号分开)。添加方法:桌面->我的电脑->右键->属性->高级->环境变量,编辑“系统变量”里面的PATH,添加“D:\app\Administrator\product\11.1.0\db_1\jdk\bin”到PATH中。
  其次,需要将编译Java代码时需要应用的类的路径加入到CLASSPATH环境变量中。为了使用Java对Oracle数据库进行操作,必须添加进行数据库连接的Oracle JDBC类到CLASSPATH环境变量中。在Oracle11以前的版本中,此类路径为Oracle主目录下的\jdbc\lib\classes12.jar,本机Oracle 11g的路径为:“D:\app\Administrator\product\11.1.0\db_1\jdbc\lib\ojdbc5.jar”。添加方法:我的电脑->右键->属性->高级->环境变量->系统变量,编辑“系统变量”里面的CLASSPATH,添加“D:\app\Administrator\product\11.1.0\db_1\jdbc\lib\ojdbc5.jar”到CLASSPATH中。同时还需要将当前的工作路径加入到CLASSPATH变量中,需要在CLASSPATH后添加“.”,一个点代表当前所在目录。此处仅添加了必须的路径,今后可以根据开发的需要将Java的类路径添加到CLASSPATH路径中。
  3 查询操作
  下面对Oracle数据库提供的示列模式SCOTT下的EMP表进行查询操作,详细代码如下:
  import java.sql.*;
  import oracle.jdbc.*;
  import oracle.jdbc.driver.*;
  public class select{
  public static void main(String args[]) throws Exception{
  Connection conn=null;
  try{
  Class.forName("oracle.jdbc.driver.OracleDriver");
  conn=DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:ora11", "scott", "tiger");//连接Oracle数据库
  Statement stmt=conn.createStatement();
  ResultSet rs=stmt.executeQuery("select empno,ename,job,hiredate,sal from emp");
  System.out.println("empnoenamejobhiredate sal");
  System.out.println("---------------------------");
  while(rs.next()){
  System.out.println(rs.getInt("empno") "" rs.getString("ename") "" rs.getString(3) "" rs.getString(4) "" rs.getString(5));}
  rs.close();
  stmt.close();
  }catch(SQLException sqle){
  sqle.printStackTrace();
  }catch(Exception e){
  e.printStackTrace();
  }finally{
  conn.close();}}}
  以上代码在本机保存为“C:\Documents and Settings\Administrator\java\select.java”。对以上代码通过在命令行执行javac命令进行编译,具体命令如下:
  C:\Documents and Settings\Administrator\java>javac select.java
  通过编译后就会在当前工作目录下产生select.class类文件,在命令行中使用java命令可以执行此类文件,执行情况如下:
  C:\Documents and Settings\Administrator\java>java select
  empnoenamejobhiredate sal
  ---------------------------
  7369SMITHCLERK1980-12-17 00:00:00.0800
  7499ALLENSALESMAN1981-02-20 00:00:00.01600
  7521WARDSALESMAN1981-02-22 00:00:00.01250
  7566JONESMANAGER1981-04-02 00:00:00.02975
  7654MARTINSALESMAN1981-09-28 00:00:00.01250
  7698BLAKEMANAGER1981-05-01 00:00:00.02850
  7782CLARKMANAGER1981-06-09 00:00:00.02450
  7788SCOTTANALYST1987-04-19 00:00:00.03000
  7839KINGPRESIDENT1981-11-17 00:00:00.05000
  7844TURNERSALESMAN1981-09-08 00:00:00.01500
  7876ADAMSCLERK1987-05-23 00:00:00.01100
  7900JAMESCLERK1981-12-03 00:00:00.0950
  7902FORDANALYST1981-12-03 00:00:00.03000
  7934MILLERCLERK1982-01-23 00:00:00.01300
  4 插入操作
  在执行插入操作前,先在数据库中建立一个简单的表,表中只包含一列,列类型为日期类型,数据库中建表命令如下:
  create table t(x date);
  然后建立对该表进行插入操作的java代码,具体代码如下:
  import java.sql.*;
  import oracle.jdbc.*;
  import oracle.jdbc.pool.OracleDataSource;
  public class insert{
  public static void main(String args[]) {
  Connection conn=null;
  try{
  OracleDataSource ods = new OracleDataSource();
  ods.setURL("jdbc:oracle:thin:scott/tiger@localhost:1521:ora11");/*另一种连接数据库的方法*/
  conn=ods.getConnection();
  Statement stmt=conn.createStatement();
  int res=stmt.executeUpdate("insert into t values(to_date(’2008-09-23 13:33:22’, ’yyyy-mm-dd hh24:mi:ss’))");
  System.out.println("成功完成插入操作!");
  conn.close();
  }catch(SQLException sqle){
  sqle.printStackTrace();
  }catch(Exception e){
  e.printStackTrace();}}}
  以上代码在本机保存为“C:\Documents and Settings\Administrator\java\insert.java”。对以上代码通过在命令行执行javac命令进行编译,具体命令如下:
  C:\Documents and Settings\Administrator\java>javac insert.java
  通过编译后就会在当前工作目录下产生insert.class类文件,在命令行中使用java命令可以执行此类文件,执行情况如下:
  C:\Documents and Settings\Administrator\java>java insert
  成功完成插入操作!
  完成以上操作后可以在数据库中验证数据是否插入到表中,数据库中查询验证情况如下:
  SQL> select * from t;
  X
  --------------
  23-9月-08
  5 结束语
  以上的Java代码只是使用了Oracle数据库提供的JDK,编译和运行都是在Oracle数据库的外部进行,除此之外在Oracle数据库中可以直接进行Java存储过程的编写,也可以在外部编写Java代码,通过loadjava命令加载到数据库中在数据库内部运行。
  总之,Oracle数据库对Java提供了很好的支持。在Java中使用SQLJ进行开发更加方便简洁,通过使用Java可以很方便完成电子邮件的发送、运行操作系统命令或程序、连接其他非Oracle数据库运行操作,为Oracle数据库应用提供了一种很好的方法。
  参考文献:
  [1] Bjarki Holm, John Carnell. Oracle 9i Java程序设计[M].北京:清华大学出版社,2002.
  [2] Thomas Kyte. Oracle专家高级编程[M].北京:清华大学出版社,2002.
  [3] 张孝祥. Java就业培训教程[M].北京:清华大学出版社,2007.
其他文献
摘要:根据本人参加企业PIIS系统的经验,详细介绍了电力施工企业项目管理信息集成系统(Project Information Integration System简称PIIS)的建设过程及系统功能特点,并分析了系统为企业管理所带来的积极改变和良好的经济效益,以及系统的成功建设与实施对提高企业管理水平、实现总部统一管理、提升集中调控能力起到的巨大推动作用。  关键词:施工企业;信息化建设;信息系统 
摘要:针对SNMP(简单网络管理协议)的安全威胁,文中对SNMP协议在安全性方面存在的问题进行了论述,以某知名厂商为例,探讨了利用SNMP协议对其网络设备的攻击,并据此提出了一些防范的建议与措施。  关键词:SNMP;MIB;攻击  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)09-11611-03    The Security Analysis of SNMP
摘要:单片机应用技术学习涉及到的实验实践环节比较多,而且硬件投入比较大。随着计算机技术的进步,基于EDA技术的Proteus能很好解决这个问题。本文通过介绍51单片机最小化应用系统设计实例,详细说明了Proteus在单片机系统开发中的应用。  关键词:单片机;51单片机最小应用系统;Proteus仿真  中图分类号:TP391文献标识码:A文章编号:1009-3044(2008)18-21ppp-
摘要:本文指出了当前市面上家用电脑电源关于EMC方面不足的情况,并依据国家标准研制出一种新型的可以解决家用电脑电源EMI问题的无源滤波器。  关键词:电脑;电源干扰;无源滤波器  中图分类号:TN912 文献标识码:A文章编号:1009-3044(2008)06-1pppp-0c    1 电脑电源干扰分析    在我们的日常生活用电中,其实额定频率为50HZ的市电并不是“纯净”。由于电网中存在着
摘要:俄罗斯方块游戏很有趣味性,游戏吸引人的地方在于几个不规则的图形变化。那不规则图形能否完全覆盖全部空间呢,在理论上能得到结论吗?文中试着对L形方块入手,从理论上给出它能充满游戏空间的条件。  关键词:俄罗斯方块;L形方块;完全覆盖  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)12-20ppp-0c    The Condition of Russia-Bloc
摘要:基于ASP.NET 2.0和SQL SEVER 2000技术,采用Microsoft Visual Studio 2005编程环境开发了一套毕业设计管理信息系统。该系统运行安全可靠,功能较全,有效地提高了高校毕业设计管理工作的效率,为高校毕业设计实践教学管理提供了新的模式。   关键词:管理信息系统;ASP.NET 2.0;SQL Server 2000;数据库  中图分类号:TP311文献
摘要:本文对AutoCAD的二次开发技术进行了探讨,就AutoCAD六种开发技术AutoLISP,VisualLISP,ADS,VBA,Object ARX,Dot NET的内涵作了简要介绍,对其优缺点进行了详细的分析对比,指出ObjectARX和Dot NET是未来AutoCAD二次开发的方向,并为广大的AutoCAD二次开发人员选用其开发工具提供参考性意见。   关键词:AutoCAD;Aut
摘要:Jar文件是Java 的可执行文件,在安装有JRE的机器上可以直接执行。然而实际操作时常常会遇到显示“could not find the main class. program will exit”无法执行的故障,有时虽能执行但无图片显示,或音乐失声,或干脆无反应。本文将针对这些执行故障进行分析,并提出排除和解决的方法。  关键词:Java;Jar文件;故障排解  中图分类号:TP311文
摘要:介绍了一种基于东南大学ASIC工程中心自主研发的SEP3203微处理器的气象数据采集系统,该系统对大气中的温度、湿度和气压等物理量进行了测量和相关处理,并借助于中国移动的GPRS网络,将处理后的数据送到气象监测服务中心。系统具有结构简单、性能稳定和功耗低等优点。  关键词:气象监测;温湿度;气压;GPRS   中图分类号:TP316文献标识码:A文章编号:1009-3044(2008)24-
摘要:文章对“汉诺塔”问题进行了详细的分析,给出了一种实现的算法,并用C语言实现。通过该问题的C实现,可使学习者清晰地观测到解决该问题的全过程。  关键词:汉诺塔;算法;递归  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)17-21496-02    1 问题描述    问题提出:有三个塔(分别为A号,B号和C号)。开始时,有n个圆形盘以从下到上、从大到小的次序叠置