zoukankan      html  css  js  c++  java
  • JDBC学习笔记(10)——调用函数&存储过程(转)

    JDBC学习笔记(10)——调用函数&存储过程

    如何使用JDBC调用存储在数据库中的函数或存储过程:

    * 1.通过COnnection对象的prepareCall()方法创建一个CallableStatement
    *    对象的实例,在使用Connection对象的prepareCall() 方法时,需要传入一个String类型的字符串,
    *    该字符串用于指明如何调用存储过程

    * 2.通过CallableStatement对象的registerOutParameter() 方法注册Out参数

    * 3.通过CallableStatement对象的setXxx()方法设定IN或In out
    *    参数,若想将参数设为null,可以使用setNUll()

    * 4.通过CallableStatement对象的execute()方法执行存储过程

    * 5.如果所调用的是带返回参数的存储过程没还需要通过CallableStatement对象的getXxx()函数进行获取

    具体的代码实现:

    复制代码
     1     @Test
     2     public void testCallableStatement() {
     3         Connection connection = null;
     4         /**
     5          * 调用存储函数 1.{?= call <procedure-name>[(<arg1>,<arg2>, ...)]} 
     6          * 调用存储过程 2.{call <procedure-name>[(<arg1>,<arg2>, ...)]}
     7          */
     8         // 调用存储函数和调用存储过程,一个sql语句的区别
     9         String sql = "{?= call <procedure-name>[(<arg1>,<arg2>, ...)]}";
    10         CallableStatement callableStatement = null;
    11         try {
    12 
    13             connection = JDBCTools.getConnection();
    14             /*
    15              * 1.通过COnnection对象的prepareCall()方法创建一个CallableStatement
    16              * 对象的实例,在使用Connection对象的prepareCall() 方法时,需要传入一个String类型的字符串,
    17              * 该字符串用于指明如何调用存储过程
    18              */
    19             callableStatement = connection.prepareCall(sql);
    20 
    21             /*
    22              * 2.通过CallableStatement对象的registerOutParameter() 方法注册Out参数
    23              */
    24             callableStatement.registerOutParameter(1, Types.NUMERIC);
    25             callableStatement.registerOutParameter(3, Types.NUMERIC);
    26 
    27             /*
    28              * 3.通过CallableStatement对象的setXxx()方法设定IN或In out
    29              * 参数,若想将参数设为null,可以使用setNUll()
    30              */
    31             callableStatement.setInt(2, 80);
    32 
    33             /* 4.通过CallableStatement对象的execute()方法执行存储过程 */
    34             callableStatement.execute();
    35 
    36             /*
    37              * 5.如果所调用的是带返回参数的存储过程没还需要通过CallableStatement对象的getXxx()
    38              */
    39             double sumSalary = callableStatement.getDouble(1);
    40             long empCount = callableStatement.getLong(3);
    41         } catch (Exception e) {
    42             e.printStackTrace();
    43         } finally {
    44             JDBCTools.release(null, callableStatement, connection);
    45         }
    46     }
    复制代码

    调用函数和存储过程的sql语句的区别:

    * 调用存储函数 1.{?= call <procedure-name>[(<arg1>,<arg2>, ...)]}
    * 调用存储过程 2.{call <procedure-name>[(<arg1>,<arg2>, ...)]}

    这个知识点暂时没用到,先做下笔记,待以后用到以后再深入研究,JDBC的学习暂时告一段落,开启新的学习征程!


    个人感悟:把简单的事情做到极致,打扎实的基础,写优秀的代码

    本文为博主原创文章,转载请注明出处:http://www.cnblogs.com/ysw-go/
    1、本博客的原创原创文章,都是本人平时学习所做的笔记,如有错误,欢迎指正。
    2、如有侵犯您的知识产权和版权问题,请通知本人,本人会即时做出处理文章。
    3、本博客的目的是知识交流所用,转载自其它博客或网站,作为自己的参考资料的,感谢这些文章的原创人员

    分类: JDBC
    好文要顶 关注我 收藏该文
    0
    0
     
    « 上一篇:JDBC学习笔记(9)——DBUtils的使用
    » 下一篇:HTML+CSS+JS学习总结
    posted @ 2016-05-11 09:09 菜鸟奋斗史 阅读(695) 评论(0) 编辑 收藏
  • 相关阅读:
    PHP 使用 header()实现重定向
    PHP抑制符号 @
    PHP自动加载spl_autoload_register
    打开PHP错误提示
    通过htaccess使用伪静态
    用反引号(``)标注表明或者字段名,防止跟 mysql关键字冲突
    Bootstrap 弹出框(Popover)插件
    jQuery 的 validator 验证,以及添加自定义验证规则。
    线程与并发(一) 多线程基础
    SpringCloud入门
  • 原文地址:https://www.cnblogs.com/yasepix/p/6510707.html
Copyright © 2011-2022 走看看