`

调用存储过程

 
阅读更多
public void queryProce( final int deptNo,final  String dname,final  String loc) {
System.out.println(" 进入");
//没有参数的存储过程
this.getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session) throws HibernateException, SQLException {
   SQLQuery sqlQuery = session.createSQLQuery("{call myproc(?,?,?)}");
            sqlQuery.setInteger(0, deptNo);
            sqlQuery.setString(1, dname);
            sqlQuery.setString(2, loc);
            sqlQuery.executeUpdate();
//SQLQuery sqlQuery = session.createSQLQuery("{call myproc3}");
  //sqlQuery.executeUpdate();
return null;
}

});

}

public Map<String, Object> queryProceList( final int deptNo, String dname, String loc) {
// TODO Auto-generated method stub
//System.out.println("进入"+deptNo);
final Map<String, Object> map=new HashMap();
this.getHibernateTemplate().execute(new HibernateCallback(){

public Object doInHibernate(Session session) throws HibernateException, SQLException {
Connection conn = session.connection();
CallableStatement procout = conn.prepareCall ("{call myproc4(?,?,?)}");  
   procout.setInt(1, deptNo);
       procout.registerOutParameter (2, Types.VARCHAR);  
       procout.registerOutParameter (3, Types.VARCHAR);  
       procout.execute ();  
       System.out.println ("\nOut argument to procout in PL/SQL block is:\n\t" +  
                            procout.getString(2) + " " + procout.getString (3));
      map.put("vale1", procout.getString(2));
   map.put("vale2", procout.getString (3));
       procout.close();  
return null;
}
});
return map;
}









//Call a procedure with an IN parameter  
    {  
      CallableStatement procin = conn.prepareCall ("begin procin (?, ?); end;");  
      procin.setInt (1, 303);  
      procin.setString (2, "Australia");  
      procin.execute ();  
      System.out.println("\ndump table regions after calling to procin--" 
                         + "insert 303 Australia\n");  
      dumpTable (conn);  
      procin.close();  
    }  
 
    // Call a procedure with an OUT parameter  
    {  
      CallableStatement procout = conn.prepareCall ("begin procout (?, ?); end;");  
      procout.registerOutParameter (1, Types.INTEGER);  
      procout.registerOutParameter (2, Types.CHAR);  
      procout.execute ();  
      System.out.println ("\nOut argument to procout in PL/SQL block is:\n\t" +  
                           procout.getInt (1) + " " + procout.getString (2));  
      procout.close();  
    }  
 
    // Call a procedure with an IN/OUT prameter  
    // This will insert "404, North Pole" instead of "303, Mars" that  
    // are in PL/SQL block of procedure procinout into table regions  
    {  
      CallableStatement procinout = conn.prepareCall ("begin procinout (?, ?); end;");  
      procinout.registerOutParameter (1, Types.INTEGER);  
     procinout.registerOutParameter (2, Types.VARCHAR);  
      procinout.setInt (1, 404);  
      procinout.setString (2, "North Pole");  
      procinout.execute ();  
      System.out.println ("\ndump table regions after calling to procinout--" 
                          + "insert 404 North Pole\n");  
      dumpTable (conn);  
      System.out.println ("Out argument in PL/SQL block definition of procinout is:\n\t" +  
                          procinout.getInt (1) + " " + procinout.getString (2));  
      procinout.close();  
    }  
 
    // Call a function with no parameters  
    {  
      CallableStatement funcnone = conn.prepareCall ("begin ? := funcnone; end;");  
      funcnone.registerOutParameter (1, Types.CHAR);  
      funcnone.execute ();  
      System.out.println ("\nReturn value of funcnone is: " + funcnone.getString (1));  
      funcnone.close();  
    }  
 
    // Call a function with an IN parameter  
    {  
      CallableStatement funcin = conn.prepareCall ("begin ? := funcin (?); end;");  
      funcin.registerOutParameter (1, Types.CHAR);  
      funcin.setString (2, "testing");  
      funcin.execute ();  
      System.out.println ("\nReturn value of funcin is: " + funcin.getString (1));  
      funcin.close();  
    }  
 
    // Call a function with an OUT parameter  
    {  
      CallableStatement funcout = conn.prepareCall ("begin ? := funcout (?); end;");  
      funcout.registerOutParameter (1, Types.CHAR);  
      funcout.registerOutParameter (2, Types.CHAR);  
      funcout.execute ();  
      System.out.println ("\nReturn value of funcout is: " + funcout.getString (1));  
      System.out.println ("Out argument is: " + funcout.getString (2));  
      funcout.close();  
    } 
分享到:
评论

相关推荐

    birt调用存储过程

    birt报表中调用存储过程的方法. 目录 1. 概述 3 2. BIRT支持的存储过程返回值类型 3 3. BIRT调用存储过程的语法 4 4. 创建存储过程数据源/集 4 5. 在BIRT中使用存储过程 5 调用返回单结果集的存储过程。 5 调用...

    Informatica调用存储过程图文流程

    Informatica调用存储过程图文流程 Informatica 是一款功能强大的数据集成工具,能够帮助用户快速、可靠地集成各种数据源。调用存储过程是 Informatica 中的一种常用功能,下面将详细介绍 Informatica 调用存储过程...

    pb调用存储过程

    以下是关于Pb调用存储过程以及存储过程创建的详细知识: 首先,`Pb调用存储过程`通常是通过Database窗口或者DataWindow对象来实现的。在Pb中,我们可以通过以下步骤调用存储过程: 1. **声明存储过程**:在Pb的...

    java 调用存储过程

    在Java编程中,调用存储过程是连接数据库并执行预定义SQL代码的一种常见方式。存储过程是由数据库管理系统(如MySQL, Oracle, SQL Server等)编译并存储的一组操作,可以包含复杂的逻辑、条件判断、循环等,提高数据...

    java调用存储过程(含out参数)

    3. **准备CallableStatement**:对于调用存储过程,我们需要使用`CallableStatement`对象,它是`PreparedStatement`的子类,专门用于调用数据库存储过程。通过`Connection`对象的`prepareCall()`方法创建。 4. **...

    Java调用存储过程--传入集合参数

    ### Java调用存储过程——传入集合参数:深入解析与实践 #### 核心知识点概览 在Java应用中,调用数据库存储过程时,往往需要处理复杂的参数传递,特别是当参数为集合类型时,这一过程变得更加具有挑战性。本文将...

    C#调用oracle方法(包括调用存储过程)

    ### C#调用Oracle方法(包括调用存储过程) 在.NET框架中,使用C#语言进行数据库操作是一项常见的任务。本文将详细介绍如何使用C#语言连接Oracle数据库,并演示如何调用Oracle存储过程,特别是带有输出参数的情况。...

    存储过程- 06.在应用程序中调用存储过程

    本主题将深入探讨如何在应用程序中调用存储过程,以充分利用这些优点。 1. **存储过程的优点** - **性能优化**:由于存储过程在首次创建时被编译,之后的执行只需调用已编译的对象,减少了解析和编译的时间。 - *...

    sqlhelper调用存储过程.rar

    本文将深入探讨如何使用SqlHelper调用存储过程,包括存储过程的基础概念、SqlHelper的基本用法以及具体步骤,以帮助开发者更高效地进行数据库操作。 一、存储过程基础 存储过程是预编译的SQL语句集合,存储在数据库...

    JDBC调用存储过程

    本文将详细讲解如何使用JDBC来调用存储过程,以实现数据的增删改查操作。 首先,理解存储过程是数据库中的一个重要概念。存储过程是一组预先编译好的SQL语句集合,它可以包含控制流语句、输入/输出参数,甚至可以有...

    ibatIS调用存储过程

    ibatIS调用存储过程是数据库操作中常见的一种技术,特别是在复杂的业务逻辑处理或数据批量操作时,存储过程能够提供更高的效率和更好的性能。本文将深入探讨如何在ibatIS框架中调用存储过程,以及涉及到的相关知识点...

    hibernate调用存储过程

    hibernate调用存储过程 hibernate调用存储过程 hibernate调用存储过程 hibernate调用存储过程 hibernate调用存储过程 hibernate调用存储过程 hibernate调用存储过程

    java调用存储过程

    java,调用存储过程java,调用存储过程java,调用存储过程java,调用存储过程java,调用存储过程java,调用存储过程java,调用存储过程java,调用存储过程java,调用存储过程java,调用存储过程java,调用存储过程

    NHibernate调用存储过程全集,值.

    **NHibernate调用存储过程全集** 在关系型数据库中,存储过程是预编译的SQL语句集合,可以提高数据库操作的效率和安全性。在使用ORM(对象关系映射)框架如NHibernate时,虽然主要目的是通过面向对象的方式操作...

    java调用存储过程实例

    在IT领域,特别是数据库操作与Java编程的交集部分,调用存储过程是常见的需求之一。根据提供的文件信息,我们可以深入解析如何在Java中通过JDBC(Java Database Connectivity)调用Oracle数据库的存储过程。 ### ...

    VB6.0 调用存储过程的例子(方法一)

    ### VB6.0调用存储过程的例子(方法一) 在Visual Basic 6.0中,调用数据库中的存储过程是一项非常实用的功能。本篇将详细解释一个具体的示例,通过VB6.0来调用一个名为`ADOTestRPE`的存储过程,并测试其返回值、...

    金蝶K3插件开发调用存储过程

    金蝶K3插件开发调用存储过程

    oracle触发器调用存储过程

    "Oracle触发器调用存储过程" Oracle触发器可以调用存储过程,以实现业务逻辑的自动化执行。然而,在触发器中调用存储过程时,需要注意事务的隔离性,以避免出现锁定和死锁的问题。Oracle自治事务(Autonomous ...

Global site tag (gtag.js) - Google Analytics