`
dana.wang
  • 浏览: 13817 次
社区版块
存档分类
最新评论

如何在ADF 的Application Module中调用存储过程

阅读更多
1.调用无参数的存储过程
public void callProcWithNoArgs() {
getDBTransaction().executeCommand(
"begin devguidepkg.proc_with_no_args; end;");
}


2.调用含入参的存储过程
protected void callStoredProcedure(String stmt, Object[] bindVars) {
PreparedStatement st = null;
	try {
		// 1. Create a JDBC PreparedStatement for
		st = getDBTransaction().createPreparedStatement("begin "+stmt+";end;",0);
		if (bindVars != null) {
		// 2. Loop over values for the bind variables passed in, if any
			for (int z = 0; z < bindVars.length; z++) {
				// 3. Set the value of each bind variable in the statement
				st.setObject(z + 1, bindVars[z]);
			}
		}
		// 4. Execute the statement
		st.executeUpdate();
	}catch (SQLException e) {
		throw new JboException(e);
	}finally {
		if (st != null) {
		try {
			// 5. Close the statement
			st.close();
		}catch (SQLException e) {}
		}
	}
}
public void callProcWithThreeArgs(Number n, Date d, String v) {
	callStoredProcedure("devguidepkg.proc_with_three_args(?,?,?)",	new Object[]{n,d,v});
}



3.含入参的调用存储函数
public static int NUMBER = Types.NUMERIC;
public static int DATE = Types.DATE;
public static int VARCHAR2 = Types.VARCHAR;
protected Object callStoredFunction(int sqlReturnType, String stmt,Object[] bindVars) {
	CallableStatement st = null;
	try {
		// 1. Create a JDBC CallabledStatement
		st = getDBTransaction().createCallableStatement("begin ? := "+stmt+";end;",0);
		// 2. Register the first bind variable for the return value
		st.registerOutParameter(1, sqlReturnType);
		if (bindVars != null) {
			// 3. Loop over values for the bind variables passed in, if any
			for (int z = 0; z < bindVars.length; z++) {
				// 4. Set the value of user-supplied bind vars in the stmt
				st.setObject(z + 2, bindVars[z]);
			}
		}
		// 5. Set the value of user-supplied bind vars in the stmt
		st.executeUpdate();
		// 6. Return the value of the first bind variable
		return st.getObject(1);
	}catch (SQLException e) {
		throw new JboException(e);
	}finally {
		if (st != null) {
			try {
				// 7. Close the statement
				st.close();
			}catch (SQLException e) {}
			}
		}
	}
}

public String callFuncWithThreeArgs(Number n, Date d, String v) {
	return (String)callStoredFunction(VARCHAR2,"devguidepkg.func_with_three_args(?,?,?)",
new Object[]{n,d,v});
}

4.获取当前的数据库事务
private Connection getCurrentConnection() throws SQLException {
/* Note that we never execute this statement, so no commit really happens */
	PreparedStatement st = getDBTransaction().createPreparedStatement("commit",1);
	Connection conn = st.getConnection();
	st.close();
	return conn;
}

0
0
分享到:
评论

相关推荐

    基于Oracle ADF的应用程序开发过程

    ### 基于Oracle ADF 的应用程序开发过程详解 #### 一、Oracle ADF 概述 Oracle ADF (Application Development Framework) 是由 Oracle 公司推出的一款旨在简化 J2EE 应用程序开发复杂度的框架。ADF 的核心价值在于...

    ADF对象建立

    Application Module是ADF中的核心组件,负责处理业务逻辑和数据操作。通过建立Application Module,可以集成View对象,实现复杂的数据处理流程。 **步骤1:** 新建Application Module,并选择需要操作的View对象。 ...

    ADF检验MATLAB程序.zip_ADF单位根检验_ADF检测_MATLAB adf_adftest matlab_adf检验

    标题中的“ADF检验MATLAB程序.zip”指的是一个包含MATLAB代码的压缩文件,用于执行Augmented Dickey-Fuller(ADF)单位根检验。ADF检验是统计学中一种常用的方法,用于判断时间序列数据是否具有单位根,即数据是否...

    ADF4351配置程序.zip_ADF4351_ADF4351程式_adf4350配置_adf4351 程序_adf4351配置

    在C51编程环境下,配置ADF4351通常需要对以下几个关键参数进行设置: 1. **参考频率**:ADF4351的内部振荡器可以提供基准频率,也可以通过外部晶体或VCXO(电压控制晶体振荡器)输入。选择合适的参考频率是确保输出...

    宽带PLL ADF41513(1)_ADF_acceptwcc_adf4360_ADF41513_ADf4360-7_

    标题中的“宽带PLL ADF41513(1)_ADF_acceptwcc_adf4360_ADF41513_ADf4360-7_”提及了两个关键器件:ADF41513和ADF4360-7。这两个都是高性能的频率合成器,在无线通信、测试设备以及各种信号处理应用中广泛使用。 ...

    ADF应用程序样例(中文)

    **ADF**(Application Development Framework)是由Oracle公司推出的一种Java EE应用开发框架,旨在简化企业级应用程序的开发过程。ADF主要面向Java开发人员,特别适用于构建复杂的Web应用。 ##### **1.1 架构** ...

    ADF界面使用多皮肤 ADF刷新界面方法

    2. **皮肤配置**:在ADF项目的`weblogic-application.xml`或`application.xml`配置文件中,可以指定默认皮肤和可用皮肤列表。开发者需要在此处添加新皮肤的相关信息,以便应用程序在启动时能够加载。 3. **界面...

    adf文件转TIFF文件

    本话题主要涉及"adf文件转TIFF文件",这是一种将特定的数据格式转换为广泛使用的图像格式的过程。下面我们将深入探讨ADF(Arc/Info Binary Grid)文件和TIFF(Tagged Image File Format)文件,以及如何进行这种转换...

    ADF4351.rar_ADF4351_ADF4351锁相环例程_adf4351双路输出_adf4351辅助输出

    在提供的压缩包中,"ADF4351.c"是源代码文件,包含了对ADF4351芯片的控制函数和例程,例如初始化、设置频率等操作。而"ADF4351.h"是头文件,定义了相关的数据结构、常量和函数原型,供主程序引用。通过这两个文件,...

    ADF学习教程

    1. 使用Eclipse或JDeveloper等集成开发环境,新建一个Fusion Web Application (ADF)。 2. 设置应用名称,创建模型层工程和视图控制器层。 3. 自定义model层和viewController层的包名。 4. 观察工程结构,会看到包含`...

    ADF应用程序样例

    ADF(Application Development Framework)是一种由Oracle提供的用于开发企业级Java应用的框架。它采用MVC(Model-View-Controller)架构模式,帮助开发者构建高效、可扩展的应用程序。 - **Model层**:主要负责...

    ADF资料 Charting with ADF Data Visualization Components

    4. **添加至应用模块**:在创建视图对象的最后一步,需要检查Add to Application Module选项,确保它默认添加到FOD Module应用模块中。这样,创建的视图对象就可以在应用中被其他组件引用,实现数据的共享和重用。 ...

    Adf基础 开发文档

    在Oracle Application Development Framework (ADF)中,基础开发涉及到一系列步骤,包括创建实体对象(Entity Objects, EO)、视图对象(View Objects, VO)以及它们之间的主从关系。这些组件是构建应用程序模型的...

    adf4159.rar_FMCW_adf4159

    压缩包内的“adf4159.c”文件很可能是一个C语言源代码,包含了使用ADF4159芯片的具体程序实现。通过分析这个源代码,我们可以深入理解如何配置ADF4159以实现1.5GHz的非FMCW输出,以及可能的寄存器设置和时序控制。...

    ADF应用程序样例入门文档

    【ADF应用程序样例入门文档】提供了对Oracle ADF(Application Development Framework)的简要介绍,适合初学者了解和快速入门。ADF是一个Java EE框架,主要用于构建企业级的Web应用程序。以下是对标题和描述中提到...

    verilog配置ADF4355

    在数字信号处理领域,ADF4355是一款高性能的射频频率合成器,常用于通信系统、测试设备以及各种无线应用。它提供了宽广的频率范围、高精度和灵活的编程能力。本教程将深入探讨如何使用硬件描述语言Verilog对ADF4355...

    Oracle ADF MenuDemo 案例

    Oracle ADF(Application Development Framework)是Oracle公司推出的一款企业级Java EE开发框架,它提供了一套全面的工具和组件,帮助开发者快速构建基于Web的应用程序。MenuDemo 是一个典型的Oracle ADF实例,主要...

Global site tag (gtag.js) - Google Analytics