平台使用oracle,与oracle所有操作通过调用存储过程实现. 使用Spring的调用存储过程技术,用到spring.jar包中类为
StoreProcedure , SqlOutParameter, SqlParameter和jdk的DataSource;
import javax.sql.DataSource; jdk自带接口
import org.springframework.jdbc.core.SqlOutParameter;
import org.springframework.jdbc.core.SqlParameter;
import org.springframework.jdbc.object.StoredProcedure;
1. java代码调用步骤分析
(1)声明连个List, 存放oracle中函数的输入和输出参数
List inParamsDesc = new Vector();
List outParamsDesc = new Vector();
(2) 把函数参数以对象数组的形式分别放入List中 ,
inParamsDesc.add(new Object[] { "LOGIN_NAME", new Integer(OracleTypes.VARCHAR) });
inParamsDesc.add(new Object[] { "PASSWORD", new Integer(OracleTypes.VARCHAR) });
outParamsDesc.add(new Object[] { "vUserID", new Integer(OracleTypes.INTEGER) });
(3).把参数值以K-V形式放入 Map对象中
Encryption encryptor = new Encryption(ParamNames.APP_CODE,
ParamNames.APP_SERIAL_NO, loginId, password);
Map inParams = new HashMap();
inParams.put("LOGINNAME",loginid);
inParams.put("PASSWORD",password);
(4)创建StoredProcedureCall(自定义对spring连接oracle的封转类) 对象,构造方法,分别为 数据源 ,所调用给的函数名,
true表示此存数过程为函数function
StoredProcedureCall procCall = new StoredProcedureCall(dataSource,"UserPkg.isUser", true);
(5)调用声明输入输出参数
procCall.declareParameters(inParamsDesc, outParamsDesc);
(6)执行存储过程,返回结果用map接收, 参数为map对象
Map outParams = procCall.executeProcedure(inParams);
(7)处理结果:
Integer userId = (Integer) outParams.get("vUserID");
2. 常见的基本数据类型 java<->oracle转化:
int =>public static final int INTEGER = 4;
String = > public static final int VARCHAR = 12;
double => public static final int DOUBLE = 8;
分享到:
相关推荐
本文实例讲述了Python使用cx_Oracle调用Oracle存储过程的方法。分享给大家供大家参考,具体如下: 这里主要测试在Python中通过cx_Oracle调用PL/SQL。 首先,在数据库端创建简单的存储过程。 create or replace ...
在实际的业务场景中,有时我们需要调用数据库中的存储过程来获取或处理数据,本篇将详细介绍如何在润乾报表中调用Oracle存储过程。 首先,我们要在Oracle数据库中创建存储过程。以下是一个简单的存储过程示例,名为...
在Spring Boot应用中,调用Oracle数据库的存储过程有多种方式。本文主要介绍三种方法,包括使用`entityManagerFactory.unwrap(SessionFactory.class).openSession()`、直接使用`EntityManager`的`...
标题中的“pb中执行oracle存储过程脚本”指的是在PowerBuilder(简称PB)环境中调用Oracle数据库的存储过程。PowerBuilder是一种可视化的开发工具,常用于构建数据驱动的应用程序。Oracle存储过程则是在Oracle数据库...
以上代码展示了如何在Java中调用Oracle数据库的三种类型的存储过程:无返回值的存储过程、有单个返回值的存储过程以及返回列表的存储过程。对于无返回值的存储过程,主要涉及的是参数的输入,通过`execute()`方法...
【C#调用Oracle存储过程最简单实例】 在C#编程中,调用Oracle数据库的存储过程是一项常见的任务。Oracle存储过程是预编译的SQL和PL/SQL语句集合,可以在数据库服务器端执行,提高了应用程序的性能和安全性。下面...
在本文中,我们将介绍如何在Visual C++环境下,使用ADO技术调用Oracle存储过程。 #### 三、Visual C++环境下使用ADO调用Oracle存储过程 在Visual C++开发环境中,可以使用ADO(ActiveX Data Object)技术来连接...
在Java编程中,调用Oracle数据库的存储过程是常见的任务,尤其在处理复杂业务逻辑或数据操作时。本文将深入探讨如何使用Java与Oracle数据库进行交互,并调用存储过程。 首先,确保你已经在你的开发环境中安装了...
这个"Oracle存储过程学习经典[语法 实例 调用].doc"文档很可能会包含以上这些概念的详细解释和丰富的实例,帮助读者理解并实践这些知识。实例是学习编程的最好方式,通过实际操作,学习者可以更直观地理解存储过程的...
这些文档通常会涵盖基础语法、实例解析、调用方法、异常处理、性能优化等多个主题,帮助读者深入理解和掌握Oracle存储过程的使用。 总之,Oracle存储过程是数据库管理的重要工具,它通过提供预编译的代码块,简化了...
在Java中调用Oracle存储过程需要使用JDBC的CallableStatement接口。以下是一个基本示例: ```java Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@hostname:port/service", "username", ...
- **用Java调用Oracle存储过程**:使用`CallableStatement`接口来调用存储过程,设置输入参数,执行存储过程并获取输出结果。 #### 动态查询在存储过程中的应用 - **本地动态SQL**:在存储过程中构建动态SQL语句,...
存储过程在数据库中预先编译并存储,这样在执行时能提高效率,因为它避免了每次调用时的重新解析和编译步骤。在Oracle中,存储过程是模块化设计的体现,可以封装复杂的业务逻辑,通过参数传递数据,提高代码的复用性...
在这段Java代码中,我们使用了`CallableStatement`来调用Oracle存储过程`TESTA`。关键点包括: - `prepareCall`方法用于准备调用存储过程。 - 使用`setString`方法设置输入参数的值。 - 调用`execute`方法执行存储...
在这个“Oracle的一个简单存储过程实例”中,我们可以看到如何在Oracle环境中创建、调用和管理存储过程。下面将详细讲解这个主题。 首先,`c.sql`、`b.sql`和`student.sql`可能是包含存储过程定义的脚本文件。这些...
在本文中,我们将为大家介绍 Spring Boot 调用 Oracle 存储过程的两种方式,并提供完整的代码示例。本文主要解决了在 Spring Boot 项目中调用 Oracle 存储过程时遇到的问题,并提供了两种解决方案。 第一种方式:...
### Oracle存储过程语法及实例详解 #### 一、概述 Oracle存储过程是一种在数据库服务器上预编译并存储的程序块,它可以包含一系列SQL语句和控制流语句。存储过程提高了应用程序性能,并增强了数据的一致性和安全性...
### Oracle存储过程实例详解 #### 一、存储过程概述 在Oracle数据库中,存储过程是一种预编译的SQL代码块,它可以包含复杂的逻辑处理,并且能够接收参数、执行操作、返回结果。存储过程的主要优点包括提高性能...
通过学习和实践这些Oracle存储过程和函数的实例,你可以更好地理解和掌握如何在实际项目中应用它们。Oracle 存储过程详解.doc文档可能包含了更多详细的步骤和示例,建议详细阅读,以深化对这一主题的理解。