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

    概念:用当地数据库语言,写的一段业务逻辑算法,并将该算法存储在客户端
        
        操作存储过程:
            CallableStatement接口==>专用于操作存储过程的接口。        
        
        SQL语句:
            1)删除存储过程add_pro
                DROP PROCEDURE [IF EXISTS] add_pro;
            2)将SQL语句的结束符号改为//,其它符号也行。
                 原因:存储过程的结束标志也是";", 若不区分会有二义性
                delimiter //
            3)用SQL语句求两者之和【out:代表返回值】

        CREATE PROCEDURE add_pro(a INT, b INT, OUT sum INT)
        BEGIN
        SET sum = a + b;
        END;


            4)调用存储过程
            语法: {CALL 存储过程名 (参数1, 参数2, ...)}
                
        code:
            1》SQL语句(创建存储过程):

     
                DROP PROCEDURE IF EXISTS add_pro;
                
                delimiter //
                
                CREATE PROCEDURE add_pro(a INT, b INT, OUT sum INT)
                BEGIN
                SET sum = a + b;
                END;
                //


                
            2》JAVA语句(调用存储过程):

                 //获得接口
                cstmt = conn.prepareCall(SqlMapping.CALL_SQL);//SQL语句:{CALL add_pro (?, ?, ?) }
                //绑定三个参数(前两个是输入,后一个是输出,需要注册。输入输出位置可变)
                cstmt.setInt(1, 100);
                cstmt.setInt(2, 200);
                //注册第三个参数为输出参数,其中Types.INTEGER表示SQL与JDBC之间的映射类型
                cstmt.registerOutParameter(3, Types.INTEGER);
                //调用存储过程
                cstmt.execute();
                //获取输出结果
                int sum = cstmt.getInt(3);
                System.out.println("sum = " + sum);    


        注意:
            1)使用存储过程需要用到CallableStatement接口,同时需要使用如下SQL命令调用:
                {CALL 存储过程名 (参数1, 参数2,...)}
            2)对于存储过程的输出参数,需要注册:
                cstmt.registerOutParameter(3, Types.INTEGER);
            4)取得返回值时,需要按照输出参数的位置来取

  • 相关阅读:
    【原创】大数据基础之Hadoop(3)yarn数据收集与监控
    【原创】运维基础之Docker(7)关于docker latest tag
    【原创】大数据基础之ElasticSearch(4)es数据导入过程
    【原创】大叔经验分享(44)hdfs副本数量
    【转】IAR IDE for MSP430、8051、ARM等平台的结合使用
    写驱动的步骤
    【转】IAR for STM8介绍、下载、安装与注册
    KEIL中函数定义存在但go to definition却不跳转的原因
    FatFs
    学习2__STM32--汉字显示
  • 原文地址:https://www.cnblogs.com/SkyGood/p/4011621.html
Copyright © 2011-2022 走看看