如何在JAVA中调用oracle的存储过程呢,下面是笔者给出的一个例子,大家有兴趣的话可以参考以下,如果程序中有什么不足的地方,恳请大家能够指点,谢谢:

/***//**
*Copyright2008,CSSWEBallrightsreserved.
*@authorhujun
*@dateMar13,2008
*@fileDataHandler.java
*@version1.1
**/

packagecss.web.orc.jdbc;

importjava.sql.CallableStatement;
importjava.sql.Connection;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;

importoracle.jdbc.OracleTypes;
importoracle.jdbc.pool.OracleDataSource;


publicclassDataHandler...{
privateStringjdbcUrl="jdbc:oracle:thin:@localhost";
privateStringuserid="hr";
privateStringpassword="123456";
privateConnectionconn;

privateStatementstmt;
privateResultSetrset;
privateStringquery;
privateStringsqlStr;


publicDataHandler()...{
}


/***//**
*getconnectiontooracledatabase
*@throwsSQLException
*/

publicvoidgetDBConnection()throwsSQLException...{
OracleDataSourceds=newOracleDataSource();
ds.setURL(jdbcUrl);
conn=ds.getConnection(userid,password);
}


/***//**
*select
*@returnrset
*@throwsSQLException
*/

publicResultSetgetAllEmployees()throwsSQLException...{
getDBConnection();
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
query="SELECT*FROMEmployeesORDERBYemployee_id";
System.out.println(" Executingquery:"+query);
rset=stmt.executeQuery(query);
returnrset;
}


/***//**
*select
*@paramname
*@returnrset
*@throwsSQLException
*/

publicResultSetgetEmployeesByName(Stringname)throwsSQLException...{
name=name.toUpperCase();
getDBConnection();
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
query="SELECT*FROMEmployeesWHEREUPPER(first_name)LIKE'%"+name+"%'"+
"ORUPPER(last_name)LIKE'%"+name+"%'ORDERBYemployee_id";
System.out.println(" Executingquery:"+query);
rset=stmt.executeQuery(query);
returnrset;
}


/***//**
*askprocedure
*@return
*@throwsSQLException
*/

publicResultSetgetJobs()throwsSQLException...{

try...{
getDBConnection();
Stringjobquery="begin?:=get_jobs;end;";
CallableStatementcallStmt=conn.prepareCall(jobquery);
callStmt.registerOutParameter(1,OracleTypes.CURSOR);
callStmt.execute();
rset=(ResultSet)callStmt.getObject(1);

}catch(SQLExceptionex)...{
ex.printStackTrace();
}
returnrset;
}


/***//**
*insert
*@paramfirst_name
*@paramlast_name
*@paramemail
*@paramphone_number
*@paramjob_id
*@paramsalary
*@returnboolean
*@throwsSQLException
*/
publicStringaddEmployeeSP(Stringfirst_name,Stringlast_name,
Stringemail,Stringphone_number,Stringjob_id,

intsalary)throwsSQLException...{
try

...{
getDBConnection();
sqlStr="begininsert_employee(?,?,?,?,?,?);end;";
CallableStatementcallstmt=conn.prepareCall(sqlStr);
callstmt.setString(1,first_name);
callstmt.setString(2,last_name);
callstmt.setString(3,email);
callstmt.setString(4,phone_number);
callstmt.setString(5,job_id);
callstmt.setInt(6,salary);
System.out.println(" Insertingwithstoredprocedure:"+sqlStr);
callstmt.execute();
return"success";
}

catch(SQLExceptionex)...{
ex.printStackTrace();
System.out.println("Possiblesourceoferror:Makesureyouhavecreatedthestoredprocedure");
return"failure";
}
}
}
下面是程序中使用的存储过程:
PROCEDURE"INSERT_EMPLOYEE"(p_first_nameemployees.first_name%type,
p_last_nameemployees.last_name%type,
p_emailemployees.email%type,
p_phone_numberemployees.phone_number%type,
p_job_idemployees.job_id%type,
p_salaryemployees.salary%type
)
AS
BEGIN
INSERTINTOEmployeesVALUES(EMPLOYEES_SEQ.nextval,p_first_name,
p_last_name,p_email,p_phone_number,SYSDATE,p_job_id,
p_salary,.30,100,80);
ENDinsert_employee;
分享到:
相关推荐
在介绍使用Java编写Oracle存储过程之前,我们首先需要了解存储过程的基本概念以及使用它们的好处。存储过程是存储在数据库中的一段预编译和优化过的代码,可以包含复杂的业务逻辑。它们在第一次执行后被编译并存储在...
本文将深入探讨如何使用Java来调用Oracle存储过程,特别是涉及游标的场景。 首先,Oracle存储过程是一种预编译的SQL和PL/SQL代码块,可以在数据库服务器端执行,提供了一种封装业务逻辑的方式。而游标(Cursor)在...
### Java调用Oracle存储过程详解 #### 一、概述 在企业级应用开发中,数据库存储过程被广泛用于实现复杂的业务逻辑处理。由于其高效性和安全性,存储过程常常成为首选方案之一。Java作为主流的企业级开发语言之一...
本文将详细介绍如何在Java中实现对Oracle存储过程的调用,以执行增删改查(CRUD)操作。 首先,确保你已安装了Oracle JDBC驱动(如ojdbc.jar),并将它添加到Java项目的类路径中。Oracle JDBC驱动提供了与Oracle...
在这段Java代码中,我们使用了`CallableStatement`来调用Oracle存储过程`TESTA`。关键点包括: - `prepareCall`方法用于准备调用存储过程。 - 使用`setString`方法设置输入参数的值。 - 调用`execute`方法执行存储...
本文将深入探讨如何在Spring Boot项目中整合MyBatis,实现调用Oracle存储过程并处理游标返回的数据。 首先,我们需要在Spring Boot项目中引入相关的依赖。在`pom.xml`文件中添加Oracle JDBC驱动(ojdbc66-oracle...
下面是使用 Spring jdbcTemplate 调用 Oracle 存储过程返回 List 集合的 Java 代码: ```java package com.zc.test; import java.sql.CallableStatement; import java.sql.ResultSet; import java.sql....
本篇文章将详细介绍如何在Java中调用Oracle存储过程,以及涉及的相关知识点。 首先,我们需要了解JDBC的基础。JDBC提供了一组接口和类,使得Java应用程序能够连接到数据库、执行SQL语句和处理结果。在Java中,我们...
在本案例中,"DOA访问Oracle存储过程.rar_DOA_oracle_存储过程"是一个压缩包,其中包含了关于如何使用DOA来调用Oracle数据库中的存储过程的相关资料。以下是关于DOA和Oracle存储过程的详细知识: 1. **DOA模式**:...
在MyEclipse中,你可以创建一个Java项目,编写以上代码,并运行它来测试对Oracle存储过程的调用。记得根据实际的数据库配置和存储过程名称进行调整。 通过这种方式,Java开发者可以有效地利用Oracle数据库的强大...
Java结合Oracle存储过程是一种强大的数据库编程技术,它能够优化数据库访问,提升系统性能,同时简化维护和保障安全。开发者应充分利用存储过程的优势,合理设计和使用,以实现更高效、安全的数据库应用。
在Java应用程序中调用Oracle存储过程是一种常见的数据访问方式,它能够利用数据库的强大功能,同时保持应用程序的结构清晰。这篇博客可能详细讨论了如何在Java中与Oracle存储过程交互,特别是涉及到了游标的使用。 ...
以下是如何使用Java调用Oracle存储过程的详细步骤: 首先,确保已经正确地安装和配置了JDK,包括设置好环境变量,以及Oracle的JDBC驱动(如ojdbc.jar或ojdbc14.jar)。这些驱动包提供了与Oracle数据库通信的接口。 ...
Oracle存储过程是数据库管理系统中的一种重要特性,它允许开发者编写包含一系列SQL语句和PL/SQL块的可重用代码段。在这个“Oracle的一个简单存储过程实例”中,我们可以看到如何在Oracle环境中创建、调用和管理存储...
总的来说,理解如何在Spring中正确地调用Oracle存储过程并传递数组参数是提高应用程序效率和数据库操作灵活性的重要技能。这涉及到了数据库设计、Java编程、Spring框架的使用以及对Oracle特定特性的掌握。通过上述...
Oracle存储过程的使用不仅提高了代码的重用性和效率,还增强了数据的安全性,因为它们可以限制对数据的直接访问。 **存储过程的基本语法**: ```sql CREATE [OR REPLACE] PROCEDURE [schema.]procedure_name [...
Oracle存储过程是一组预编译的SQL语句,可以在数据库服务器端执行,提供更好的性能和安全性。 1. **无返回值的存储过程**: 当存储过程不返回任何结果时,我们只需在MyBatis的Mapper接口中定义一个无返回值的方法...
在提供的`ConnUtils2.java`文件中,很可能包含了以上所述的Java数据库操作代码,例如建立JDBC连接、处理CLOB数据类型以及调用Oracle存储过程的方法。分析这个文件可以帮助我们更好地理解实际应用中的实现细节,包括...
【Java存储过程实现Oracle远程逻辑备份与恢复】 Oracle数据库是一个基于网络计算的系统,它内建了对Java的支持,包括Oracle JVM(Java Virtual Machine),这使得开发者能够在数据库服务器端执行复杂的计算任务,...