zoukankan      html  css  js  c++  java
  • java调用Oracle存储存储过程

    数据库表和增删改的procedure参照(http://www.cnblogs.com/J-wym/p/3292913.html)

     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();
            }
        }
  • 相关阅读:
    Selenium(Python)等待元素出现
    java文件的I/O
    Map的四种遍历方式
    模板类实现链表
    字符串相关库函数使用
    动态规划之背包问题
    最长递增子序列
    深度优先搜索(DFS),逃离迷宫
    素数环问题(递归回溯)
    枚举(百鸡问题)
  • 原文地址:https://www.cnblogs.com/J-wym/p/3294185.html
Copyright © 2011-2022 走看看