`
zhouxingfu520
  • 浏览: 422583 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java 调用Oracle 存储过程 Jdbc/Hibernate

阅读更多

oracle 创建存储过程 两个参数 两个返回值

create or replace procedure PP_test(
                                              oiyear    in number,
                                              oimonth    in number,s_save out varchar2,s_update out varchar2) is
  nottzset_exception exception;
  eb exception;
begin

//查询插入的多少记录
select count(*) into s_save from pj_tempajbf temp  where temp.remark='save' and iyear=oiyear;
//查询更新的多少记录
 select count(*) into s_update from pj_tempajbf temp where temp.remark='update' and imonth=oimonth;


exception
  when others then
    rollback; /**/ /*异常处理,操作都不会被执行*/
    return;
end PP_test;
 

 

    java 使用jdbc调用存储过程

//调用存储过程

   try {

            Class.forName(driver);
             conn = DriverManager.getConnection(url);

           String sql="{ call PP_test(?,?) }";

            CallableStatement call=conn.prepareCall(sql);

           //储存过程为两个参数
           call.setLong(3, 2011);
           call.setLong(4, 8);
           String[] s=new String[2];
           call.registerOutParameter(5,java.sql.Types.VARCHAR);  
           call.registerOutParameter(6,java.sql.Types.VARCHAR);  
           call.execute();

          //返回值
           s[0]=call.getString(5);
           s[1]=call.getString(6);
            log.debug("执行成功:" + sql);
        } catch (SQLException ex) {
            log.error("数据库执行出错"+ex.getMessage());
            throw ex;
        }finally{
            closeConnection(conn,pstmt,rs);
        }


     

 使用hibernate 基本一样

tx   =   session.beginTransaction();      
  Connection   conn=session.connection();      
 String sql="{ call PP_test(?,?) }";
  CallableStatement call=conn.prepareCall(sql);
           //储存过程为两个参数
           call.setLong(3, 2011);
           call.setLong(4, 8);
           String[] s=new String[2];
           call.registerOutParameter(5,java.sql.Types.VARCHAR);  
           call.registerOutParameter(6,java.sql.Types.VARCHAR);  
  call.executeUpdate();      
  tx.commit();       
 

 

 

分享到:
评论

相关推荐

    Java调用oracle存储过程通过游标返回临时表

    本篇文章将深入探讨如何使用Java调用Oracle存储过程,并通过游标获取存储过程中返回的临时表数据。 首先,Oracle存储过程是一种在数据库端执行的预编译SQL语句和PL/SQL代码集合。它可以接收参数、执行业务逻辑并...

    oracle分别使用jdbc和hibernate的例子

    JDBC(Java Database Connectivity)和Hibernate是两种常见的与Oracle交互的方式。本文将深入探讨如何使用JDBC和Hibernate来操作Oracle数据库,同时结合提供的标签"源码"和"工具",我们将讨论它们的实现细节和优势。...

    oracle存储过程学习经典入门

    本文将从 Oracle 存储过程的基础知识开始,逐步深入到 Oracle 存储过程的高级应用,包括 Hibernate 调用 Oracle 存储过程和 Java 调用 Oracle 存储过程的方法。 Oracle 存储过程基础知识 Oracle 存储过程是 Oracle...

    Oracle PlSql 存储过程

    用 Java 调用 Oracle 存储过程可以使用 JDBC 或 Oracle 的java驱动程序。下面是用 Java 调用 Oracle 存储过程的总结: 1. 无返回值的存储过程 无返回值的存储过程可以使用 CallableStatement 来调用。 2. 有...

    java使用JDBC和ODBC连接oracle数据库

    Java通过JDBC(Java Database Connectivity)和ODBC(Open Database Connectivity)来连接Oracle数据库是两种常见的数据访问方式。本文将详细介绍这两种方法,并提供相关的技术知识。 首先,JDBC是Java平台的标准...

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

    Hibernate调用Oracle存储过程涉及到使用Hibernate框架来实现JDBC操作。在Java中调用Oracle存储过程可以通过JDBC API来完成。在调用时,可以根据存储过程是否有返回值来进行区分处理。无返回值的存储过程只需要执行...

    java连接oracle实例

    在Java编程中,连接Oracle数据库并调用其存储过程是一项常见的任务,这涉及到JDBC(Java Database Connectivity)技术以及对Oracle特性的理解。下面将详细解释这个过程。 首先,Java通过JDBC API与各种数据库进行...

    oracle存储过程学习经典

    在实际应用中,Hibernate可以调用Oracle存储过程,Java也可以通过Oracle JDBC直接调用存储过程,并且可以处理存储过程中的返回值,无论是无返回值、有返回值还是返回列表。通过Java代码调用存储过程时,需要了解...

    JAVA调用存储过程

    综上所述,Java调用存储过程涉及到JDBC API的使用,包括建立连接、创建CallableStatement、设置和获取参数、执行存储过程以及关闭资源。熟练掌握这些步骤对于进行数据库交互的Java开发至关重要。

    oracle存储过程(语法+实例).docx

    4. **Hibernate 调用 Oracle 存储过程** Hibernate,一个Java持久化框架,支持调用存储过程。通过配置Hibernate映射文件(hbm.xml)或使用`Session.createSQLQuery()`方法来调用。 5. **Java 调用 Oracle 存储过程...

    Spring访问传入数组参数的Oracle存储过程

    在Java中,尤其是使用Spring框架时,我们可以借助JDBC或ORM(对象关系映射)工具如Hibernate来调用这些存储过程。 在Spring中,调用存储过程通常通过`JdbcTemplate`或`NamedParameterJdbcTemplate`类来实现。对于...

    hibernate连接oracle

    Hibernate是一款强大的Java持久化框架,它为开发人员提供了一种简单、高效的方式来管理数据库操作,大大简化了ORM(对象关系映射)的过程。在Oracle数据库环境下,Hibernate的使用显得尤为重要,因为它可以无缝地将...

    java-hibernate调用mysql过程和函数的方式知识.pdf

    Java-Hibernate 调用 MySQL 过程和函数的方式知识 Java-Hibernate 框架中调用 MySQL 数据库中的过程和函数是通过 CallableStatement 对象来实现的。下面将详细介绍如何调用 MySQL 中的过程和函数。 调用函数 在 ...

    详解Hibernate呼叫Oracle的存贮过程和函数

    本示例演示Hibernate 3.2呼叫Oracle的存贮过程和函数,以及通过Hibernate的Query接口简化JDBC的开发步骤--两个步骤得到List集合。使用这种方式开发可以要求开发人员不需要太了解Hibernate框架,但是需要开发人员非常...

    java连接Oracle分页显示

    在Java中,我们可以使用JDBC(Java Database Connectivity)来连接Oracle数据库并执行上述SQL语句或调用存储过程。以下是一个基本的示例: ```java import java.sql.*; public class OraclePagingExample { ...

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

    使用Java JDBC API可以直接调用Oracle存储过程,通过`CallableStatement`实现。 #### 七、Oracle高效分页存储过程实例 为了实现高效的分页查询,可以设计专门的存储过程来处理分页逻辑,使用游标、变量等技术实现...

    oracle_存储过程详解

    - Hibernate调用Oracle存储过程需要配置JDBC驱动,并使用`CallableStatement`来执行存储过程。 4. Java调用Oracle存储过程: - 无返回值的存储过程:使用`CallableStatement`的`execute()`方法。 - 有返回值的非...

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

    存储过程还可以通过Hibernate框架或者Java代码调用,这时需要掌握JDBC与Oracle数据库之间的接口编程。调用时,注意区分无返回值的存储过程和有返回值的存储过程。对于有返回值的存储过程,其返回值可以通过OUT参数...

    一个简单的hibernate_4 链接Oracle例子

    <property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property> <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:ORCL</property> <property name="...

Global site tag (gtag.js) - Google Analytics