`
qdpurple
  • 浏览: 276653 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

平台中调用oracle 的存储过程procedure实例解析

阅读更多

平台使用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;

 

 

 

 

0
1
分享到:
评论

相关推荐

    Python使用cx_Oracle调用Oracle存储过程的方法示例

    本文实例讲述了Python使用cx_Oracle调用Oracle存储过程的方法。分享给大家供大家参考,具体如下: 这里主要测试在Python中通过cx_Oracle调用PL/SQL。 首先,在数据库端创建简单的存储过程。 create or replace ...

    润乾报表调用oracle存储过程案例说明

    在实际的业务场景中,有时我们需要调用数据库中的存储过程来获取或处理数据,本篇将详细介绍如何在润乾报表中调用Oracle存储过程。 首先,我们要在Oracle数据库中创建存储过程。以下是一个简单的存储过程示例,名为...

    Springboot调用Oracle存储过程的几种方式.docx

    在Spring Boot应用中,调用Oracle数据库的存储过程有多种方式。本文主要介绍三种方法,包括使用`entityManagerFactory.unwrap(SessionFactory.class).openSession()`、直接使用`EntityManager`的`...

    pb中执行oracle存储过程脚本

    标题中的“pb中执行oracle存储过程脚本”指的是在PowerBuilder(简称PB)环境中调用Oracle数据库的存储过程。PowerBuilder是一种可视化的开发工具,常用于构建数据驱动的应用程序。Oracle存储过程则是在Oracle数据库...

    用java调用oracle存储过程

    以上代码展示了如何在Java中调用Oracle数据库的三种类型的存储过程:无返回值的存储过程、有单个返回值的存储过程以及返回列表的存储过程。对于无返回值的存储过程,主要涉及的是参数的输入,通过`execute()`方法...

    C#调用oracle存储过程 最简单的实例

    【C#调用Oracle存储过程最简单实例】 在C#编程中,调用Oracle数据库的存储过程是一项常见的任务。Oracle存储过程是预编译的SQL和PL/SQL语句集合,可以在数据库服务器端执行,提高了应用程序的性能和安全性。下面...

    oracle存储过程应用实例

    在本文中,我们将介绍如何在Visual C++环境下,使用ADO技术调用Oracle存储过程。 #### 三、Visual C++环境下使用ADO调用Oracle存储过程 在Visual C++开发环境中,可以使用ADO(ActiveX Data Object)技术来连接...

    java调用Oracle存储过程

    在Java编程中,调用Oracle数据库的存储过程是常见的任务,尤其在处理复杂业务逻辑或数据操作时。本文将深入探讨如何使用Java与Oracle数据库进行交互,并调用存储过程。 首先,确保你已经在你的开发环境中安装了...

    oracle存储过程学习经典(实例)

    这个"Oracle存储过程学习经典[语法 实例 调用].doc"文档很可能会包含以上这些概念的详细解释和丰富的实例,帮助读者理解并实践这些知识。实例是学习编程的最好方式,通过实际操作,学习者可以更直观地理解存储过程的...

    oracle存储过程学习经典[语法+实例+调用]

    这些文档通常会涵盖基础语法、实例解析、调用方法、异常处理、性能优化等多个主题,帮助读者深入理解和掌握Oracle存储过程的使用。 总之,Oracle存储过程是数据库管理的重要工具,它通过提供预编译的代码块,简化了...

    oracle存储过程学习实例文档 创建调用

    在Java中调用Oracle存储过程需要使用JDBC的CallableStatement接口。以下是一个基本示例: ```java Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@hostname:port/service", "username", ...

    oracle存储过程学习经典[语法+实例+调用].doc

    - **用Java调用Oracle存储过程**:使用`CallableStatement`接口来调用存储过程,设置输入参数,执行存储过程并获取输出结果。 #### 动态查询在存储过程中的应用 - **本地动态SQL**:在存储过程中构建动态SQL语句,...

    oracle存储过程实例

    存储过程在数据库中预先编译并存储,这样在执行时能提高效率,因为它避免了每次调用时的重新解析和编译步骤。在Oracle中,存储过程是模块化设计的体现,可以封装复杂的业务逻辑,通过参数传递数据,提高代码的复用性...

    oracle 存储过程 函数 dblink

    在这段Java代码中,我们使用了`CallableStatement`来调用Oracle存储过程`TESTA`。关键点包括: - `prepareCall`方法用于准备调用存储过程。 - 使用`setString`方法设置输入参数的值。 - 调用`execute`方法执行存储...

    oracle的一个简单存储过程实例

    在这个“Oracle的一个简单存储过程实例”中,我们可以看到如何在Oracle环境中创建、调用和管理存储过程。下面将详细讲解这个主题。 首先,`c.sql`、`b.sql`和`student.sql`可能是包含存储过程定义的脚本文件。这些...

    Spring boot调用Oracle存储过程的两种方式及完整代码

    在本文中,我们将为大家介绍 Spring Boot 调用 Oracle 存储过程的两种方式,并提供完整的代码示例。本文主要解决了在 Spring Boot 项目中调用 Oracle 存储过程时遇到的问题,并提供了两种解决方案。 第一种方式:...

    oracle存储过程语法及实例讲解

    ### Oracle存储过程语法及实例详解 #### 一、概述 Oracle存储过程是一种在数据库服务器上预编译并存储的程序块,它可以包含一系列SQL语句和控制流语句。存储过程提高了应用程序性能,并增强了数据的一致性和安全性...

    oracle 存储过程实例

    ### Oracle存储过程实例详解 #### 一、存储过程概述 在Oracle数据库中,存储过程是一种预编译的SQL代码块,它可以包含复杂的逻辑处理,并且能够接收参数、执行操作、返回结果。存储过程的主要优点包括提高性能...

    Oracle存储过程和函数(最详细包含emp 表实例操作,边看边操作)

    通过学习和实践这些Oracle存储过程和函数的实例,你可以更好地理解和掌握如何在实际项目中应用它们。Oracle 存储过程详解.doc文档可能包含了更多详细的步骤和示例,建议详细阅读,以深化对这一主题的理解。

Global site tag (gtag.js) - Google Analytics