如何在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;
分享到:
相关推荐
下面是使用 Spring jdbcTemplate 调用 Oracle 存储过程返回 List 集合的 Java 代码: ```java package com.zc.test; import java.sql.CallableStatement; import java.sql.ResultSet; import java.sql....
Oracle后台存储过程中调用Java代码块,以此来访问异构数据库数据(DB2)。 此方式适用场景: 原有业务逻辑均在后台实现,现要加入对异构数据库的数据访问或写入。 异构数据库的访问,多用数据联邦、透明网关或自行...
01. 安装Oracle图文存储函数及JavaSource 02. 建立2014年的图文硬盘目录 03. 建立2014年的图文Oracle目录 04. 对Oracle用户XXXX进行目录访问授权2014年 05. 通过图文读写测试程序验证配置正确性(暂无需要可联系)...
在java代码中调用执行shell脚本,sqlldr导数与使用sqlplus在shell调用执行存储过程。 linux环境中有2个dba的用户:oracle、erm 还有1个web用户:erm 在linux环境中,这三个用户都可以直接在任意目录下执行该shell...
只需要安装oracle client在本地,然后配置好tns,输入连接名,用户名,密码,数据表的名称,文件名数据列名以及blob数据列名,就可以批量导出ORACLE数据库BLOB字段生成图片
Java存储过程是Oracle中的一种机制,允许开发者使用Java语言来编写存储过程,从而实现对数据库的动态访问和处理。在本文中,Java存储过程用于实现对Blob类型数据的动态访问。 3.JDBC JDBC(Java Database ...
Java 访问 Oracle 中的 COLB 类型数据 Java 中访问 Oracle 数据库中的 COLB 类型数据是一种常见的操作。在实际开发中,我们经常需要处理大类型数据,如文本数据、图像数据等。Oracle 中的 COLB 类型数据可以存储大...
JDBC KPRB 驱动由直接存储在数据库中的 Java 程序使用。 要配置 Java 使其可以通过 Oracle JDBC Drivers 连接到数据库,需要安装 Sun JDK、修改 PATH 环境变量、设置 CLASSPATH 环境变量、运行"java –version"来...
本文介绍了一种基于JSP访问ORACLE数据库BLOB字段并显示图形的解决方案,展示了JSP技术、ORACLE数据库BLOB字段、坐标点的存储和读取、图形的显示、排样数据表设计、Samplegraph.jsp的功能、JAVA类的应用等知识点。
使用Java来扩展存储程序是一种很流行的方法。在使用Java类库处理数据的过程中,PL/SQL是必不可少的一环,这是因为PL/SQL 封装了Java类库的数据访问,即任何Java存储对象访问的数据都必须经过PL/SQL。
简单Oracle文档访问(SODA)是一种API,它使您可以将Oracle数据库用作NoSQL JSON文档存储。 尽管SODA在处理JSON数据时特别强大,但也支持任何其他类型的数据。 使用SODA架构,您的数据存储为文档,并且文档被组织...
Java员工管理系统是一个用Java语言开发的软件系统,用于...数据存储和管理:将员工信息保存在数据库中,以便长期存储和管理。 实现Java员工管理系统可以使用各种技术和框架,如JavaEE、Spring、Hibernate等。同时,
在 Oracle 10g 安装完成后,需要管理数据库,包括创建用户、分配权限、管理存储空间、优化数据库性能等。这些操作需要使用 SQL 语句或图形化管理工具。 在安装 Oracle 10g 之前,需要了解 Oracle 10g 的安装要求,...
可以使用Java Client library“twitter4j”来下载Twitter数据,然后将其加载到Oracle Database中,创建Java存储过程访问Twitter,并将其映射成PL/SQL函数。 本资源提供了JSON在Oracle 12C中的实战经验,涵盖了JSON...
7.3.4 存储过程检查 7.3.5 使用触发器 7.4 避免更改引起的大量改动 7.4.1 使用视图 7.4.2 使用同义名 7.4.3 使用光标 第8章 数据库用户管理 8.1 授予权限 8.1.1 直接授权 8.1.2 授权角色 8.1.3...
在系统实现中,有时会有直接在数据库端利用触发器、存储过程等方式进行数据传递、分发的业务,而其中可能会涉及一些业务逻辑,为了处理这些业务逻辑,并简单起见,可以直接在触发器或存储过程中调用一些 Java 类或 ...
2. 通过数据泵,以前通过 EXP/IMP 主要基于 Client/Server 的逻辑备份方式转换为服务器端的快速备份,数据泵主要工作在服务器端,可以通过并行方式快速装入或卸载数据,而且可以在运行过程中调整并行的程度,以加快...
编辑PL / SQL和个人资料的存储过程 从一个窗口中央管理常见的数据库任务 查找和解决与约束,触发器,扩展,索引和赠款的数据库问题 创建快捷方式和模板的代码 创建自定义的代码模板 控制代码访问和开发(或没有第三...
第39章 Java存储过程 第40章 Oracle真正应用群集 第41章 网格体系结构和管理 第Ⅷ部分 指南 第42章 Oracle数据字典指南 第43章 调整应用程序和SQL旅行者指南 第44章 调整中的案例分析 第45章 Oracle Application ...