简单的Java调用Oracle存储过程

系统 1695 0

一、Oracle数据新建测试表和存储过程

  1、新建test表

      
        create
      
      
        table
      
      
         test(

    name 
      
      
        varchar2
      
      (
      
        5
      
      ) 
      
        primary
      
      
        key
      
      
        ,

    password 
      
      
        varchar2
      
      (
      
        5
      
      ) 
      
        not
      
      
        null
      
      
        

)
      
    

  2、新建带参数的存储过程pro_add_test用来向test表中插入一条数据

      
        create
      
      
        or
      
      
        replace
      
      
        procedure
      
       pro_add_test(m_name 
      
        in
      
       test.name
      
        %
      
      type,m_password 
      
        in
      
       test.password
      
        %
      
      type) 
      
        is
      
      
        begin
      
      
        insert
      
      
        into
      
       test 
      
        values
      
      
        (m_name,m_password);


      
      
        end
      
      ;
    

  3、测试一下存储过程,插入一条数据

      
        begin
      
      
        

  pro_add_test(
      
      
        '
      
      
        p
      
      
        '
      
      ,
      
        '
      
      
        1
      
      
        '
      
      
        );


      
      
        end
      
      ;
    

 

二、Java内中调用存储过程

      
        package
      
      
         procedureTransfer;




      
      
        import
      
      
         java.sql.CallableStatement;


      
      
        import
      
      
         java.sql.Connection;


      
      
        import
      
      
         java.sql.DriverManager;


      
      
        import
      
      
         java.sql.SQLException;




      
      
        public
      
      
        class
      
      
         Procedure {

    
      
      
        public
      
      
        static
      
        Connection getConn(){
      
        //
      
      
        获得数据库连接对象
      
      

        Connection conn = 
      
        null
      
      
        ;

        
      
      
        try
      
      
         {

            Class.forName(
      
      "oracle.jdbc.driver.OracleDriver"
      
        );

            conn 
      
      = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "scott", "tiger"
      
        );

            

        } 
      
      
        catch
      
      
         (ClassNotFoundException e) {

            e.printStackTrace();

        } 
      
      
        catch
      
      
         (SQLException e) {

            e.printStackTrace();

        }
      
      
        catch
      
      
         (Exception e) {

            e.printStackTrace();

        }        

        
      
      
        return
      
      
         conn;

    }

    

    
      
      
        public
      
      
        void
      
       pro_add(String name,String pass){
      
        //
      
      
        调用存储过程
      
      

        Connection conn =
      
         getConn();

        
      
      
        try
      
      
         {

            CallableStatement cal 
      
      = conn.prepareCall("{call pro_add_test(?,?)}"
      
        );

            cal.setString(
      
      1
      
        , name);

            cal.setString(
      
      2
      
        , pass);

            cal.execute();

            conn.close();

        } 
      
      
        catch
      
      
         (SQLException e) {

            e.printStackTrace();

        }

    }

    

    
      
      
        public
      
      
        static
      
      
        void
      
       main(String[] args) {
      
        //
      
      
        main函数中测试
      
      

        Procedure p = 
      
        new
      
      
         Procedure();

        p.pro_add(
      
      "test", "pass"
      
        );

    }

}
      
    

数据库中查看就会发现多了一天“test”-“pass”的数据。

简单的Java调用Oracle存储过程


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论