美文网首页
(8)用存储过程(CallableStatement)

(8)用存储过程(CallableStatement)

作者: Mrsunup | 来源:发表于2018-10-14 19:06 被阅读0次

存储过程是一组SQL语句,它们构成一个逻辑单元并执行特定的任务,它们用于封装一组操作或查询,以便在数据库服务器上执行。例如,对雇员数据库(hire、fire、promote、lookup)的操作可以编码为由应用程序代码执行的存储过程。存储过程可以用不同的参数和结果进行编译和执行,它们可以是输入、输出和输入/输出参数的任意组合

具体的详情参考:https://docs.oracle.com/javase/tutorial/jdbc/basics/storedprocedures.html

我这里只讲解存储过程的调用,如果了解更多参考上面的链接

1.存储过程的调用功能

使用CallableStatement对象调用存储过程,调用存储过程的格式为:
{call 存储过程名称(?,?)} ,其中?为参数占位符,参数可能为输入参数,输出参数,也可是输入\输处参数的组合中的任意一种

     System.out.println("\nCalling the procedure SHOW_SUPPLIERS");
      //存储过程的名称为:SHOW_SUPPLIERS
     CallableStatement  cs = this.con.prepareCall("{call SHOW_SUPPLIERS}");
      ResultSet rs = cs.executeQuery();

      while (rs.next()) {
        //SHOW_SUPPLIERS的存储过程有返回结果集
        String supplier = rs.getString("SUP_NAME");
        String coffee = rs.getString("COF_NAME");
        System.out.println(supplier + ": " + coffee);
      }
      
      System.out.println("\nContents of COFFEES table before calling RAISE_PRICE:");
      
      System.out.println("\nCalling the procedure RAISE_PRICE");
      //RAISE_PRICE这个存储过程有三个参数,第一个和第二个为输入参数,第三个为输入/输出参数组合
      cs = this.con.prepareCall("{call RAISE_PRICE(?,?,?)}");
      cs.setString(1, coffeeNameArg);
      cs.setFloat(2, maximumPercentageArg);
      //设置输出参数的类型为数值类型
      cs.registerOutParameter(3, Types.NUMERIC);
      cs.setFloat(3, newPriceArg);
       //执行存储过程
      cs.execute();
      //直接从CallableStatement  获取输出参数的值
      System.out.println("\nValue of newPrice after calling RAISE_PRICE: " + cs.getFloat(3));
      
      System.out.println("\nContents of COFFEES table after calling RAISE_PRICE:");

相关文章

  • (8)用存储过程(CallableStatement)

    存储过程是一组SQL语句,它们构成一个逻辑单元并执行特定的任务,它们用于封装一组操作或查询,以便在数据库服务器上执...

  • CallableStatement调用后台存储过程

    带更新……

  • CallableStatement 调用存储

    String sql = "{call 过程名(?,?,?)}"; 速度快 使用过程存储 直接 修改数据库 ...

  • 8、存储过程

    8、存储过程 8.1、删除存储过程 8.2、创建存储过程 8.3、创建使用局部变量的存储过程 [^]: 局部变量 ...

  • 1

    什么时候使用CallableStatement?用来准备CallableStatement的方法是什么?Calla...

  • 8、MySQL存储过程

    存储过程 存储过程是一个SQL语句集合,当主动去调用存储过程时,其中内部的SQL语句会按照逻辑执行。 1、创建存储...

  • CallableStatement

    在近年JDBC中,存储过程越来越边缘化,用的也好。即使在数据库中,存储过程也是很偏门的,仅作为了解。下面是关于Ca...

  • CallableStatement

    CallableStatement 和 PreparedStatement用法特别相似,只是CallableSta...

  • 04-存储过程

    一、创建存储过程 1、返回产品平均价格的存储过程 此存储过程名为productpricing,用 CREATE P...

  • 23、存储过程

    存储过程 过程(存储过程) 与过程相比,存储过程是存在数据库中的一个对象 如果编译错误。可以用show error...

网友评论

      本文标题:(8)用存储过程(CallableStatement)

      本文链接:https://www.haomeiwen.com/subject/lhdtzftx.html