`

JAVA调用oracle三种存储过程实例

阅读更多

JAVA调用存储过程:
几经挫折,但总算搞通了,为了避免后来者少走弯路,特记述与此,同时亦对自己进行鼓励。

创建测试用表: 

CREATE TABLE T_TEST(
I_ID 
NVARCHAR(20),
I_NAME 
NVARCHAR(20)
)

一:无返回值的存储过程

1、在SQL*PLUS中建立存储过程:


CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2)  AS

BEGIN 

   
INSERT INTO T_TEST (I_ID,I_NAME) VALUES (PARA1, PARA2);

END TESTA;


2、相应的JAVA程序:

 

package com.my.test;

import java.sql.*

import java.io.OutputStream; 

import java.io.Writer; 

import java.sql.PreparedStatement; 

import java.sql.ResultSet; 

import oracle.jdbc.driver.*


public class TestProcedureOne ...{
    
public TestProcedureOne() ...

      }
 

      
public static void main(String[] args )...

        String driver 
= "oracle.jdbc.driver.OracleDriver"

        String strUrl 
= "jdbc:oracle:thin:@192.168.10.216:1521:ctbu"

        Statement stmt 
= null

        ResultSet rs 
= null

        Connection conn 
= null

        CallableStatement cstmt 
= null

      

        
try ...

          Class.forName(driver); 

          conn 
=  DriverManager.getConnection(strUrl, "dbname""password"); 

          CallableStatement proc 
= null

          proc 
= conn.prepareCall("{ call dbname.TESTA(?,?) }"); 

          proc.setString(
1"100"); 

          proc.setString(
2"TestOne"); 

          proc.execute(); 

        }
 

        
catch (SQLException ex2) ...

          ex2.printStackTrace(); 

        }
 

        
catch (Exception ex2) ...

          ex2.printStackTrace(); 

        }
 

        
finally...

          
try ...

            
if(rs != null)...

              rs.close(); 

              
if(stmt!=null)...

                stmt.close(); 

              }
 

              
if(conn!=null)...

                conn.close(); 

              }
 

            }
 

          }
 

          
catch (SQLException ex1) ...

          }
 

        }
 

      }
 

    }
 


二:有返回值的存储过程(非列表)

1、存储过程为:

CREATE OR REPLACE PROCEDURE TESTB(PARA1 IN VARCHAR2,PARA2 OUT VARCHAR2)  AS

BEGIN 

   
SELECT INTO PARA2 FROM TESTTB WHERE I_ID= PARA1; 

END TESTB;

2、JAVA代码:

package com.my.test;
public class TestProcedureTWO ...{

  
public TestProcedureTWO() ...{

  }


  
public static void main(String[] args )...{

    String driver 
= "oracle.jdbc.driver.OracleDriver";

    String strUrl 
= "jdbc:oracle:thin:@192.168.10.216:1521:ctbu"

    Statement stmt 
= null;

    ResultSet rs 
= null;

    Connection conn 
= null;

    
try ...{

      Class.forName(driver);

      conn 
=  DriverManager.getConnection(strUrl, "dbname""password"); 

      CallableStatement proc 
= null;

      proc 
= conn.prepareCall("{ call HYQ.TESTB(?,?) }");

      proc.setString(
1"100");

      proc.registerOutParameter(
2, Types.VARCHAR);

      proc.execute();

      String testPrint 
= proc.getString(2);

      System.out.println(
"=testPrint=is="+testPrint);

    }


    
catch (SQLException ex2) ...{

      ex2.printStackTrace();

    }


    
catch (Exception ex2) ...{

      ex2.printStackTrace();

    }


    
finally...{

      
try ...{

        
if(rs != null)...{

          rs.close();

          
if(stmt!=null)...{

            stmt.close();

          }


          
if(conn!=null)...{

            conn.close();

          }


        }


      }

分享到:
评论

相关推荐

    用java调用oracle存储过程

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

    java调用oracle存储过程入门实例 增删改查

    在这个入门实例中,我们将重点探讨如何通过Java调用Oracle的存储过程来实现这些基本操作,并结合使用DOM4J解析XML配置文件来管理数据库连接。 首先,存储过程是Oracle数据库中预编译的SQL语句集合,它可以封装复杂...

    java调用存储过程实例

    ### Java调用存储过程实例:详解 #### 存储过程简介 存储过程是一种在数据库中编写的SQL程序,可以接受输入参数,执行一系列操作,并返回结果或输出参数。它们可以提高应用程序的性能、安全性和复用性。在Oracle...

    java调用Oracle存储过程实例

    一个完整的java调用Oracle存储过程的实例,含存储过程和代码注释

    java调用oracle sqlserver存储过程共用方法

    ### Java调用Oracle与SQL Server存储过程的通用方法 #### 1. **建立数据库连接** 在Java中,使用JDBC(Java Database Connectivity)来连接数据库。根据`dbType`参数动态选择正确的数据源,即Oracle或SQL Server的...

    java调用Oracle存储过程

    在Java编程中,调用Oracle数据库的存储过程是常见的任务,尤其在处理复杂业务逻辑或数据操作时。本文将深入探讨如何使用Java与...记住,实践是最好的老师,尝试编写一个简单的Java程序来调用Oracle存储过程,加深理解。

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

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

    java调用oracle存储过程

    Java调用Oracle存储过程是数据库操作中常见的任务,特别是在需要执行复杂业务逻辑或者批量处理数据时。本篇文章将详细介绍如何通过Java与Oracle数据库交互,调用存储过程,并提供几个简单的实例帮助新手理解。 首先...

    java调用oracle存储过程实现增删改查

    在Java编程中,调用Oracle数据库的存储...总之,通过Java调用Oracle存储过程,我们可以有效地执行数据库操作,同时利用存储过程带来的性能和安全优势。了解如何正确设置参数、执行和处理结果是成功实现这一目标的关键。

    java 调用存储过程 实例

    为了在Java中调用Oracle存储过程,我们需要使用JDBC(Java Database Connectivity)API。JDBC是Java平台的标准接口,用于与各种类型的数据库进行通信。以下是一步步教你如何实现的步骤: 1. **导入必要的库**: 在...

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

    通过本文的探讨,我们不仅了解了如何在Java中调用Oracle存储过程并传递集合参数的基本原理,还深入实践了相关的技术细节。这对于构建高性能、高可靠性的企业级应用而言,是不可或缺的知识点。在未来,随着数据量的...

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

    Oracle存储过程是数据库管理系统中的一种重要特性,它允许开发者编写包含一系列SQL语句和PL/SQL块的可重用代码段。在这个“Oracle的一个简单存储过程实例”中,我们可以看到如何在Oracle环境中创建、调用和管理存储...

    java中调用oracle的存储过程

    总结起来,Java调用Oracle存储过程涉及JDBC、CallableStatement、参数设置以及结果获取等多个环节。理解这些概念并熟练运用,对于Java开发者来说是至关重要的,尤其是在处理与数据库交互的复杂业务场景中。

    java 调用存储过程

    值得注意的是,上述代码中的文件名列表(如Project1.cfg、Unit1.dcu等)与Java调用存储过程无关,它们看起来像是Delphi或FreePascal项目的文件,这些文件通常用于描述项目配置、单元信息、表单布局等,而不是与Java...

    用callabledStatement调用oracle存储过程实用例子(IN OUT 传游标)

    CallabledStatement 是 Java 中的一种接口,用于调用存储过程。CallabledStatement interface 是 Statement 的一个子接口,提供了一些特殊的方法来调用存储过程。使用 CallabledStatement 可以提高应用程序的性能和...

    Java调用oracle存储过程输出自定义对象或二维表

    在Java编程中,与Oracle数据库交互是常见的任务之一,而调用Oracle存储过程可以实现复杂的业务逻辑。本文将深入探讨如何在Java中调用Oracle存储过程,并输出自定义对象或二维表,以此提升数据处理效率。 首先,我们...

    java 与 oracle 存储过程

    这篇博文(虽然链接未提供具体内容)可能探讨了如何在Java中调用Oracle存储过程,下面将详细介绍这个主题的相关知识点: 1. **JDBC API**:Java通过JDBC API与数据库通信,包括连接数据库、执行SQL语句和存储过程。...

Global site tag (gtag.js) - Google Analytics