• 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();
            }
        }
  • 相关阅读:
    SQLite-SQLiteDatabase 数据库实例练习
    全局配置一个ajax的错误监控
    文件上传&&验证文件格式
    CSS3 resize 属性
    select change()
    window.location.Reload()和window.location.href 区别
    条件检索
    jQuery $.ajax传递数组的traditional参数传递必须true 对象的序列化
    jquery中attr方法和prop方法的区别
    resize
  • 原文地址:https://www.cnblogs.com/J-wym/p/3294185.html
Copyright © 2020-2023  润新知