`
xiaojunhu
  • 浏览: 30329 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

java 访问oracle存储过程

 
阅读更多

如何在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集合

    下面是使用 Spring jdbcTemplate 调用 Oracle 存储过程返回 List 集合的 Java 代码: ```java package com.zc.test; import java.sql.CallableStatement; import java.sql.ResultSet; import java.sql....

    Oracle调用Java代码过程

    Oracle后台存储过程中调用Java代码块,以此来访问异构数据库数据(DB2)。 此方式适用场景: 原有业务逻辑均在后台实现,现要加入对异构数据库的数据访问或写入。 异构数据库的访问,多用数据联邦、透明网关或自行...

    一种利用Oracle-java包存储图片的解决方案

    01. 安装Oracle图文存储函数及JavaSource 02. 建立2014年的图文硬盘目录 03. 建立2014年的图文Oracle目录 04. 对Oracle用户XXXX进行目录访问授权2014年 05. 通过图文读写测试程序验证配置正确性(暂无需要可联系)...

    java调用shell脚本执行sqlldr与存储过程

    在java代码中调用执行shell脚本,sqlldr导数与使用sqlplus在shell调用执行存储过程。 linux环境中有2个dba的用户:oracle、erm 还有1个web用户:erm 在linux环境中,这三个用户都可以直接在任意目录下执行该shell...

    批量导出ORACLE数据库BLOB字段生成图片

    只需要安装oracle client在本地,然后配置好tns,输入连接名,用户名,密码,数据表的名称,文件名数据列名以及blob数据列名,就可以批量导出ORACLE数据库BLOB字段生成图片

    利用Java语言实现PB对Oracle中Blob类型的动态操作.pdf

    Java存储过程是Oracle中的一种机制,允许开发者使用Java语言来编写存储过程,从而实现对数据库的动态访问和处理。在本文中,Java存储过程用于实现对Blob类型数据的动态访问。 3.JDBC JDBC(Java Database ...

    java存取oracle中的COLB类型数据.pdf

    Java 访问 Oracle 中的 COLB 类型数据 Java 中访问 Oracle 数据库中的 COLB 类型数据是一种常见的操作。在实际开发中,我们经常需要处理大类型数据,如文本数据、图像数据等。Oracle 中的 COLB 类型数据可以存储大...

    java ee连接Oracle数据库的各种方法.doc

    JDBC KPRB 驱动由直接存储在数据库中的 Java 程序使用。 要配置 Java 使其可以通过 Oracle JDBC Drivers 连接到数据库,需要安装 Sun JDK、修改 PATH 环境变量、设置 CLASSPATH 环境变量、运行"java –version"来...

    基于JSP访问ORACLE数据库BLOB字段并显示图形的解决方案.pdf

    本文介绍了一种基于JSP访问ORACLE数据库BLOB字段并显示图形的解决方案,展示了JSP技术、ORACLE数据库BLOB字段、坐标点的存储和读取、图形的显示、排样数据表设计、Samplegraph.jsp的功能、JAVA类的应用等知识点。

    oracle调用java程序

    使用Java来扩展存储程序是一种很流行的方法。在使用Java类库处理数据的过程中,PL/SQL是必不可少的一环,这是因为PL/SQL 封装了Java类库的数据访问,即任何Java存储对象访问的数据都必须经过PL/SQL。

    适用于Java的苏打水:Java的SODA(简单Oracle文档访问)是一个Oracle库,用于编写与Oracle数据库中的JSON(不仅是JSON!)一起使用的Java应用程序。 SODA允许您的Java应用程序将Oracle数据库用作NoSQL文档存储

    简单Oracle文档访问(SODA)是一种API,它使您可以将Oracle数据库用作NoSQL JSON文档存储。 尽管SODA在处理JSON数据时特别强大,但也支持任何其他类型的数据。 使用SODA架构,您的数据存储为文档,并且文档被组织...

    java员工管理(tomcat+Java+javaweb+oracle)

    Java员工管理系统是一个用Java语言开发的软件系统,用于...数据存储和管理:将员工信息保存在数据库中,以便长期存储和管理。 实现Java员工管理系统可以使用各种技术和框架,如JavaEE、Spring、Hibernate等。同时,

    Oracle 10g Setup 安装具体步骤

    在 Oracle 10g 安装完成后,需要管理数据库,包括创建用户、分配权限、管理存储空间、优化数据库性能等。这些操作需要使用 SQL 语句或图形化管理工具。 在安装 Oracle 10g 之前,需要了解 Oracle 10g 的安装要求,...

    Oracle 12C JSON实战.pdf

    可以使用Java Client library“twitter4j”来下载Twitter数据,然后将其加载到Oracle Database中,创建Java存储过程访问Twitter,并将其映射成PL/SQL函数。 本资源提供了JSON在Oracle 12C中的实战经验,涵盖了JSON...

    Oracle11g从入门到精通2

    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...

    oracle调用webService

    在系统实现中,有时会有直接在数据库端利用触发器、存储过程等方式进行数据传递、分发的业务,而其中可能会涉及一些业务逻辑,为了处理这些业务逻辑,并简单起见,可以直接在触发器或存储过程中调用一些 Java 类或 ...

    Oracle 数据泵导出和导入.docx

    2. 通过数据泵,以前通过 EXP/IMP 主要基于 Client/Server 的逻辑备份方式转换为服务器端的快速备份,数据泵主要工作在服务器端,可以通过并行方式快速装入或卸载数据,而且可以在运行过程中调整并行的程度,以加快...

    Toad DBA Suite for Oracle 9.7.2 Commercial

    编辑PL / SQL和个人资料的存储过程 从一个窗口中央管理常见的数据库任务 查找和解决与约束,触发器,扩展,索引和赠款的数据库问题 创建快捷方式和模板的代码 创建自定义的代码模板 控制代码访问和开发(或没有第三...

    oracle database 10g 完整参考手册part1

    第39章 Java存储过程 第40章 Oracle真正应用群集 第41章 网格体系结构和管理 第Ⅷ部分 指南 第42章 Oracle数据字典指南 第43章 调整应用程序和SQL旅行者指南 第44章 调整中的案例分析 第45章 Oracle Application ...

Global site tag (gtag.js) - Google Analytics