`
hn_archer
  • 浏览: 132960 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

JAVA调用ORACLE存储过程

 
阅读更多

 

一:简单的调用存储过程返回几个字段

1:建立测试表及存储过程

 

----创建表 userInfo
create table userInfo
(
userid varchar2(5),
username varchar2(10),
usersex varchar2(2),
useage number
);
----插入测试数据
insert into userInfo values('U001','zhang','女',20);
insert into userInfo values('U002','Jack','男',21);
insert into userInfo values('U003','Jone','女',21);
insert into userInfo values('U004','Bill','男',23);
commit;
----创建过程
create or replace procedure user_pro
  ----参数
 (uid in varchar2,uname out varchar2,usex out varchar2,uage out number)
as
 ----变量
 U_name varchar2(10);
 U_sex varchar2(2);
 U_age number;
begin
select username,usersex,useage into U_name,U_sex,U_age from userInfo where userid=uid;
uname:=U_name;
usex:=U_sex;
uage:=U_age;
end;

 里面的存储过程还可以简化为:

 

 

create or replace procedure user_pro
 (uid in varchar2,uname out varchar2,usex out varchar2,uage out number)
as
 
begin
select username,usersex,useage into uname,usex,uage from userInfo where userid=uid;
end;

  

 

2:调用函数

 

import java.sql.*;
 
public class Main { 
 
    public static void main(String[] args) {
        Connection conn=null;
        String url = "jdbc:oracle:thin:@localhost:1521:eos";
        String username="eos";
        String pwd = "eos";
        try{
            //连接到数据库
            Class.forName("oracle.jdbc.driver.OracleDriver");
            conn=DriverManager.getConnection(url,username ,pwd);
            //用这个方法调用存储过程
            //第一个参数为in,后三个为out,注意方式的不同
            CallableStatement cs=conn.prepareCall("{call user_pro(?,?,?,?)}");
            cs.setString(1,"U001");//设置in参数
            cs.registerOutParameter(2,Types.VARCHAR);//注册返回值类型
            cs.registerOutParameter(3,Types.VARCHAR); //注册返回值类型
            cs.registerOutParameter(4,Types.INTEGER); //注册返回值类型
            cs.execute();//执行过程
            //下面是获得out的值,注意了,不是ResultSet,而是CallableStatement
            String name=cs.getString(2);
            String sex=cs.getString(3);
            int age=cs.getInt(4);
            System.out.println("  "+"姓名:"+name+"  性别:"+sex+"  年龄:"+age);
        }catch(Exception ex){
            System.out.print("异常:"+ex.toString());
        }
         
    }
}

  

 

二:返回游标,

 

java.sql.Connection
java.sql.Driver
java.sql.CallableStatement
Type.Others
可以换成
oracle.jdbc.OracleConnection
oracle.jdbc.OracleDriver
oracle.jdbc.OracleCallableStatement
OracleType.CURSOR
cstmt = conn.prepareCall("{call list_early_deaths(?)}");
            cstmt.registerOutParameter(1, OracleTypes.CURSOR);
            cstmt.execute();
            ResultSet rs = (ResultSet)cstmt.getObject(1);
 
            while(rs.next())
            {
              System.out.print("id = "+rs.getInt(1));
              System.out.print("name = "+rs.getString(2));
              System.out.print("pwd = "+rs.getString(3));
              System.out.println();
            }
create or replace procedure list_early_deaths
(r_cursor out sys_refcursor)
as
 
begin
 open r_cursor for select *  from my_user u;
end;

 

 

分享到:
评论

相关推荐

    java调用oracle存储过程返回结果集,Record,cursor参照.pdf

    Java调用Oracle存储过程返回结果集Record、Cursor参照 Java调用Oracle存储过程返回结果集(Record)是指在Java程序中通过调用Oracle存储过程来获取记录集的结果。下面将详细介绍相关知识点。 创建Type 在Oracle中...

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

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

    java调用oracle存储过程或者函数

    以上就是Java调用Oracle存储过程或函数的主要知识点,实践中要根据具体情况进行适当的调整和优化。在处理过程中,参考Oracle的JDBC文档和官方示例,以及Java API文档,将有助于理解和解决问题。

    java调用oracle存储过程(游标)相关

    总之,Java调用Oracle存储过程,尤其是处理游标,需要理解JDBC的使用、Oracle特定的类型以及存储过程的参数传递方式。通过合理的编程实践,我们可以高效地在Java应用程序中集成Oracle数据库的复杂操作。

    java调用Oracle存储过程的代码

    总结,通过Java调用Oracle存储过程,我们需要配置JDBC驱动,建立数据库连接,创建CallableStatement,设置参数,执行存储过程,并处理返回的结果。在这个例子中,我们展示了如何调用一个简单的存储过程并打印返回的...

    java调用oracle存储过程

    ### Java调用Oracle存储过程详解 #### 一、概述 在企业级应用开发中,数据库存储过程被广泛用于实现复杂的业务逻辑处理。由于其高效性和安全性,存储过程常常成为首选方案之一。Java作为主流的企业级开发语言之一...

    用java调用oracle存储过程

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

    java调用oracle存储过程.wps

    java调用oracle存储过程.wps java调用oracle存储过程.wps java调用oracle存储过程.wps

    java 调用oracle存储过程

    总之,Java调用Oracle存储过程涉及的主要知识点包括JDBC API、Oracle JDBC驱动、`CallableStatement`对象、参数绑定、结果集处理以及资源管理。通过学习和实践这些内容,开发者可以有效地在Java应用中集成Oracle...

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

    在Java中调用Oracle存储过程,我们需要使用JDBC(Java Database Connectivity),这是Java标准库提供的一组接口和类,用于与各种数据库进行通信。首先,我们需要添加Oracle JDBC驱动到项目中,例如ojdbc.jar。 1. *...

    JAVA调用ORACLE存储过程通用类

    ### JAVA调用ORACLE存储过程通用类 #### 概述 在Java开发中,经常会遇到需要与数据库交互的情况,特别是当涉及到复杂的业务逻辑时,利用数据库的存储过程可以有效地提高程序性能并简化代码结构。本篇文章将详细...

    Java调用Oracle存储过程的方法

    本文将详细讲解如何使用Java调用Oracle存储过程,并提供示例代码。 首先,我们需要了解Java中用于与数据库交互的核心类,包括`java.sql.Connection`、`java.sql.CallableStatement`和`java.sql.Types`。`Connection...

Global site tag (gtag.js) - Google Analytics