如何使用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()函数进行获取

具体的代码实现:

     @Test
public void testCallableStatement() {
Connection connection = null;
/**
* 调用存储函数 1.{?= call <procedure-name>[(<arg1>,<arg2>, ...)]}
* 调用存储过程 2.{call <procedure-name>[(<arg1>,<arg2>, ...)]}
*/
// 调用存储函数和调用存储过程,一个sql语句的区别
String sql = "{?= call <procedure-name>[(<arg1>,<arg2>, ...)]}";
CallableStatement callableStatement = null;
try { connection = JDBCTools.getConnection();
/*
* 1.通过COnnection对象的prepareCall()方法创建一个CallableStatement
* 对象的实例,在使用Connection对象的prepareCall() 方法时,需要传入一个String类型的字符串,
* 该字符串用于指明如何调用存储过程
*/
callableStatement = connection.prepareCall(sql); /*
* 2.通过CallableStatement对象的registerOutParameter() 方法注册Out参数
*/
callableStatement.registerOutParameter(1, Types.NUMERIC);
callableStatement.registerOutParameter(3, Types.NUMERIC); /*
* 3.通过CallableStatement对象的setXxx()方法设定IN或In out
* 参数,若想将参数设为null,可以使用setNUll()
*/
callableStatement.setInt(2, 80); /* 4.通过CallableStatement对象的execute()方法执行存储过程 */
callableStatement.execute(); /*
* 5.如果所调用的是带返回参数的存储过程没还需要通过CallableStatement对象的getXxx()
*/
double sumSalary = callableStatement.getDouble(1);
long empCount = callableStatement.getLong(3);
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCTools.release(null, callableStatement, connection);
}
}

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

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

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


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

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

JDBC学习笔记(10)——调用函数&存储过程的更多相关文章

  1. 【转】JDBC学习笔记(10)——调用函数&存储过程

    转自:http://www.cnblogs.com/ysw-go/ 如何使用JDBC调用存储在数据库中的函数或存储过程: * 1.通过COnnection对象的prepareCall()方法创建一个C ...

  2. python学习笔记10(函数一): 函数使用、调用、返回值

    一.函数的定义 在某些编程语言当中,函数声明和函数定义是区分开的(在这些编程语言当中函数声明和函数定义可以出现在不同的文件中,比如C语言),但是在Python中,函数声明和函数定义是视为一体的.在Py ...

  3. Java -- JDBC 学习--调用函数&存储过程

    调用函数&存储过程 /** * 如何使用 JDBC 调用存储在数据库中的函数或存储过程 */ @Test public void testCallableStatment() { Connec ...

  4. APUE学习笔记——10.9 信号发送函数kill、 raise、alarm、pause

    转载注明出处:Windeal学习笔记 kil和raise kill()用来向进程或进程组发送信号 raise()用来向自身进程发送信号. #include <signal.h> int k ...

  5. JDBC学习笔记二

    JDBC学习笔记二 4.execute()方法执行SQL语句 execute几乎可以执行任何SQL语句,当execute执行过SQL语句之后会返回一个布尔类型的值,代表是否返回了ResultSet对象 ...

  6. IOS学习笔记06---C语言函数

    IOS学习笔记06---C语言函数 --------------------------------------------  qq交流群:创梦技术交流群:251572072              ...

  7. ES6学习笔记<三> 生成器函数与yield

    为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口 ...

  8. Go语言学习笔记七: 函数

    Go语言学习笔记七: 函数 Go语言有函数还有方法,神奇不.这有点像python了. 函数定义 func function_name( [parameter list] ) [return_types ...

  9. JDBC学习笔记一

    JDBC学习笔记一 JDBC全称 Java Database Connectivity,即数据库连接,它是一种可以执行SQL语句的Java API. ODBC全称 Open Database Conn ...

随机推荐

  1. Python中的 isdigit()方法

    Python isdigit()方法 sdigit()方法就是检测字符串是否只有数字组成, 如果字符串中是只有数字组成,则返回true, 如果字符串中有其他字符,则返回false. 语法格式是:  s ...

  2. excel文档

    1.快速统计行数(ctrl+Shift+(方向键向下)). bson数据类型 留个影响 public enum BsonType { Double = 0x01, String = 0x02, Doc ...

  3. C# 计时器的三种使用方法

    在.net中有三种计时器,一是System.Windows.Forms命名空间下的Timer控件,它直接继承自Componet;二是System.Timers命名空间下的Timer类. Timer控件 ...

  4. 运行Android应用时提示ADB是否存在于指定路径问题

    打开eclipse,选择指定的Android应用工程并Run,提示: [2014-06-28 11:32:26 - LinearLayout] The connectionto adb is down ...

  5. BZOJ 2301 Problem b(莫比乌斯函数)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=2301 题意:每次给出a,b,c,d,K.求有多少数对(x,y)满足a<=x< ...

  6. ffmpeg 2.8.1 最新版本 VS2013 可调式动态库

    ffmpeg 2.8.1 最新版本 VS2013 可调式动态库 由于大多数初学者都在想尽各种版本寻求VC编译调试ffmpeg的版本,我也曾经移植过几个版本的ffmpeg到VC上编译.: 链接所需动态库 ...

  7. Ogre内存池的使用和说明

    大家可能会遇到一些Ogre中的内存分配的方面问题,我对这个总结了一下内存分配的方面资料. Ogre在1.7版本后,统一了内存分配策略,提供了内存是否泄漏的跟踪和内存池等比较方便开发的一些策略,目前提供 ...

  8. Android中View转换为Bitmap及getDrawingCache=null的解决方法

    1.前言 Android中经常会遇到把View转换为Bitmap的情形,比如,对整个屏幕视图进行截屏并生成图片:Coverflow中需要把一页一 页的view转换为Bitmap.以便实现复杂的图形效果 ...

  9. 禁止ie缓存

    nocache.jsp:(后台配置)<%response.setHeader("Cache-Control","no-cache"); //HTTP 1. ...

  10. VI使用的小白教程

    vi 使用方法vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强 大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,v ...