论文部分内容阅读
摘要: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.
关键词: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.