1、直接在java程序中用jdbc connection的方式调用:
private ResultSet callProcedure(Connection conn, String proName, List<Object> values) throws Exception {
CallableStatement cstmt = null;
ResultSet rs = null;
try {
StringBuffer function = new StringBuffer("{call "+proName+"(");
if (values != null && values.size() > 0) {
for (int i=0; i<values.size(); i++) {
function.append("?,");
}
}
function.append("?");
function.append(")}");
cstmt = conn.prepareCall(function.toString());
for (int i=0; i<values.size(); i++) {
cstmt.setObject(i+1, values.get(i));
}
cstmt.registerOutParameter(values.size()+1, oracle.jdbc.driver.OracleTypes.CURSOR);
cstmt.execute();
rs = (ResultSet)cstmt.getObject(values.size()+1);
return rs;
}catch (Exception e) {
e.printStackTrace();
throw e;
}finally {
try {
cstmt.close();
}catch (Exception e) {
e.printStackTrace();
throw e;
}
}
}
2、java程序用ibatis调用存储过程:
ibatis配置:
<resultMap id="corp-map" class="com.procedure.domain.IbatisProDomain">
<result property="dm" column="DM" />
<result property="mc" column="MC" />
<result property="bz" column="BZ" />
.....
</resultMap>
<parameterMap id="curMemuParameters" class="java.util.HashMap" >
<parameter property="dm" javaType="java.lang.String" mode="IN"/>
<parameter property="curMemuList" jdbcType="ORACLECURSOR" javaType="java.sql.ResultSet" mode="OUT" resultMap="corp-map" />
</parameterMap>
<procedure id="getProcedureExample" parameterMap="curMemuParameters">
{call P_EXAMPLE_PROCEDURE(?,?)}
</procedure>
java程序:
List<IbatisProDomain> returnList = new ArrayList<IbatisProDomain>();
Map<String,Object> parameterMap = new HashMap<String,Object>();
if(domain != null){
parameterMap.put("dm","01");
parameterMap.put("curMemuList",null);
sqlMapClientTemplate.queryForObjectByCurr("getProcedureExample","curMemuList",parameterMap);
returnList = (List<IbatisProDomain>)parameterMap.get("curMemuList");
}
分享到:
相关推荐
Java调用Oracle存储过程返回结果集(Record)是指在Java程序中通过调用Oracle存储过程来获取记录集的结果。下面将详细介绍相关知识点。 创建Type 在Oracle中,需要创建两个Type类型:`myScalarType`和`myTableType...
本篇文章将深入探讨如何使用Java调用Oracle存储过程,并通过游标获取存储过程中返回的临时表数据。 首先,Oracle存储过程是一种在数据库端执行的预编译SQL语句和PL/SQL代码集合。它可以接收参数、执行业务逻辑并...
以上就是Java调用Oracle存储过程或函数的主要知识点,实践中要根据具体情况进行适当的调整和优化。在处理过程中,参考Oracle的JDBC文档和官方示例,以及Java API文档,将有助于理解和解决问题。
总结,通过Java调用Oracle存储过程,我们需要配置JDBC驱动,建立数据库连接,创建CallableStatement,设置参数,执行存储过程,并处理返回的结果。在这个例子中,我们展示了如何调用一个简单的存储过程并打印返回的...
ibatis调用oracle存储过程分页
能不能写个动态的业务,只输入存储过程名称,自动获取存储过程参数,并且参数的数据从前台传递过来...只根据输入不同的存储过程名称、参数内容,自动调用不同的存储过程。 已经使用在多个项目中 全开源项目 请放心下载
我们将首先编写 Oracle 存储过程,然后编写 Java 代码使用 Spring JdbcTemplate 调用这些存储过程。 Oracle 存储过程 首先,我们编写了两个 Oracle 存储过程:`P_EMP_SELECT` 和 `P_EMP_ADD`。 `P_EMP_SELECT` ...
" hyq "); CallableStatement cstmt = conn.prepareCall("{ call ...需要注意的是,在使用Java调用存储过程时,要确保驱动程序已正确导入,并且数据库连接信息是准确的,还要处理可能出现的异常,确保程序的健壮性。
Java 程序调用 Oracle 中的存储过程 在 Java 程序中调用 Oracle 中的存储过程是非常实用的技术, 它可以帮助开发者将业务逻辑封装在存储过程中,以提高应用程序的性能和安全性。下面将详细介绍如何使 Java 类调用 ...
以下是一个简单的示例,展示了如何调用一个不带参数的Oracle存储过程: ```java Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); session....
### JAVA调用ORACLE存储过程知识点详解 #### 一、背景与概述 在现代软件开发过程中,集成多种技术栈是常态。特别是在企业级应用中,Java 和 Oracle 数据库的组合非常常见。通过 Java 调用 Oracle 存储过程不仅能够...
通过这些步骤,你可以成功地从Java应用程序中调用Oracle存储过程。确保正确配置JDBC驱动,理解存储过程的参数类型,并熟悉JDBC API,这样就能高效地实现数据交互了。在开发过程中,可以参考Oracle的官方文档以及各种...
在这个入门实例中,我们将重点探讨如何通过Java调用Oracle的存储过程来实现这些基本操作,并结合使用DOM4J解析XML配置文件来管理数据库连接。 首先,存储过程是Oracle数据库中预编译的SQL语句集合,它可以封装复杂...
本文将深入探讨如何在Spring Boot项目中整合MyBatis,实现调用Oracle存储过程并处理游标返回的数据。 首先,我们需要在Spring Boot项目中引入相关的依赖。在`pom.xml`文件中添加Oracle JDBC驱动(ojdbc66-oracle...
在Java应用程序中调用Oracle数据库中的存储过程或函数是一项常见的任务。这不仅能够提高代码的执行效率,还可以有效地管理事务处理,确保数据的一致性和完整性。本文将详细介绍如何在Java环境中通过`...
java调用oracle存储过程.wps java调用oracle存储过程.wps java调用oracle存储过程.wps
总之,Java调用Oracle存储过程,尤其是处理游标,需要理解JDBC的使用、Oracle特定的类型以及存储过程的参数传递方式。通过合理的编程实践,我们可以高效地在Java应用程序中集成Oracle数据库的复杂操作。
### JAVA调用ORACLE存储过程通用类 #### 概述 在Java开发中,经常会遇到需要与数据库交互的情况,特别是当涉及到复杂的业务逻辑时,利用数据库的存储过程可以有效地提高程序性能并简化代码结构。本篇文章将详细...