java调用Oracle存储过程的方法实例

 更新时间:2013年09月01日 15:30:53   作者:   我要评论

这篇文章介绍了java调用Oracle存储过程的方法实例,有需要的朋友可以参考一下

 1.测试添加数据的procedure

复制代码 代码如下:

public void testProcedure() {
        Connection con = getConnction();

        // **1.测试添加数据的procedure
          String procedure = "{call users_insert_proc(?,?,?,?) }";

        CallableStatement cs = null;
        try {
             cs = con.prepareCall(procedure);
             cs.setInt(1, 123450);
             cs.setString(2, "xxiaox");
             cs.setString(3, "Ww342864");
             cs.setString(4, "742621646@qq.com");
             } catch (SQLException e) {
              e.printStackTrace();
        }
        try {
             cs.executeUpdate();
        } catch (SQLException e) {
               e.printStackTrace();
        }
    }


2.测试删除数据的procedure

复制代码 代码如下:

public void testDelPro() {
        Connection con = getConnction();

        // **2.测试删除数据的procedure
         String procedure = "{call delete_usersbyid_proc(?) }";

        CallableStatement cs = null;
        try {
             cs = con.prepareCall(procedure);
                      cs.setInt(1, 123450);
             } catch (SQLException e) {
              e.printStackTrace();
        }
        try {
             cs.executeUpdate();
        } catch (SQLException e) {
               e.printStackTrace();
        }
    }


3.测试更新数据的procedure

复制代码 代码如下:

public void testDelPro() {
        Connection con = getConnction();

        // **3.测试更新数据的procedure
        String procedure = "{call users_updatebyId_proc(?,?,?,?) }";

        CallableStatement cs = null;
        try {
             cs = con.prepareCall(procedure);
         cs.setInt(1, 101);          cs.setString(2, "小第三方的浩");          cs.setString(3, "asdf342864");         cs.setString(4, "742621646@qq.com");
             } catch (SQLException e) {
              e.printStackTrace();
        }
        try {
             cs.executeUpdate();
        } catch (SQLException e) {
               e.printStackTrace();
        }
    }

4.测试查找数据的procedure

      a)建包体

      b)创建查询的procedure

复制代码 代码如下:

create or replace package userspackage as
type users_cursor is ref cursor;
end  userspackage;

复制代码 代码如下:

create or replace procedure users_packageAll(
s_id in number ,u_cursor out userspackage.users_cursor) is
begin
   if s_id = 0 then
       open u_cursor for select id,name,pword,email  from users;
      else
       open u_cursor for select id,name,pword,email  from users where id=s_id;
      end if;

  end;

c)Java调用

复制代码 代码如下:

public void testDelPro() {
        Connection con = getConnction();

        // 返回查询procedure
       String procedure = "{call users_packageAll(?,?) }";


        CallableStatement cs = null;
        try {
             cs = con.prepareCall(procedure);
                     cs.setInt(1, 0);
     cs.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);

             } catch (SQLException e) {
              e.printStackTrace();
        }
        try {
             cs.execute();
              ResultSet rs = (ResultSet)cs.getObject(2);
            while (rs.next()) {
              System.out.println(rs.getInt(1) + " " + rs.getString(2));
            }
        } catch (SQLException e) {
               e.printStackTrace();
        }
    }

相关文章

  • Spring Boot配置Thymeleaf(gradle)的简单使用

    Spring Boot配置Thymeleaf(gradle)的简单使用

    今天小编就为大家分享一篇关于Spring Boot配置Thymeleaf(gradle)的简单使用,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Java数据结构及算法实例:汉诺塔问题 Hanoi

    Java数据结构及算法实例:汉诺塔问题 Hanoi

    这篇文章主要介绍了Java数据结构及算法实例:汉诺塔问题 Hanoi,本文直接给出实现代码,代码中包含大量注释,需要的朋友可以参考下
    2015-06-06
  • Java程序员应该遵守的10条纪律

    Java程序员应该遵守的10条纪律

    Java程序员有许多应遵循的守则或最佳实践方式。本文概述了每个开发者最应该遵循的10条守则或戒律,如果不遵循它们,将会导致灾难性后果。
    2015-09-09
  • Java实现画线、矩形、椭圆、字符串功能

    Java实现画线、矩形、椭圆、字符串功能

    本篇文章主要介绍了Java实现画线、矩形、椭圆、字符串功能的实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • 浅谈Java中的可变参数

    浅谈Java中的可变参数

    下面小编就为大家带来一篇浅谈Java中的可变参数。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • MapTask阶段shuffle源码分析

    MapTask阶段shuffle源码分析

    今天小编就为大家分享一篇关于MapTask阶段shuffle源码分析,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • spring声明式事务解析

    spring声明式事务解析

    这篇文章主要为大家详细介绍了spring声明式事务,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • java实现插入排序算法

    java实现插入排序算法

    插入排序算法是一个对少量元素进行排序的有效算法。插入排序的工作原理与打牌时整理手中的牌的做法类似,开始摸牌时,我们的左手是空的,接着一次从桌上摸起一张牌,并将它插入到左手的正确位置。
    2015-04-04
  • java 设计模式之State(状态模式)

    java 设计模式之State(状态模式)

    这篇文章主要介绍了java 设计模式之State(状态模式)的相关资料,一个类的行为基于它的状态的改变而改变。状态模式归属于行为型模式,需要的朋友可以参考下
    2017-08-08
  • Java 常用类解析:java异常机制,异常栈,异常处理方式,异常链,异常丢失详解

    Java 常用类解析:java异常机制,异常栈,异常处理方式,异常链,异常

    这篇文章主要介绍了Java 常用类解析:java异常机制,异常栈,异常处理方式,异常链,异常丢失详解的相关资料,需要的朋友可以参考下
    2017-03-03

最新评论