博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JDBC学习笔记(10)——调用函数&存储过程
阅读量:6096 次
发布时间:2019-06-20

本文共 2188 字,大约阅读时间需要 7 分钟。

如何使用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 
[(
,
, ...)]} 6 * 调用存储过程 2.{call
[(
,
, ...)]} 7 */ 8 // 调用存储函数和调用存储过程,一个sql语句的区别 9 String sql = "{?= call
[(
,
, ...)]}";10 CallableStatement callableStatement = null;11 try {12 13 connection = JDBCTools.getConnection();14 /*15 * 1.通过COnnection对象的prepareCall()方法创建一个CallableStatement16 * 对象的实例,在使用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 out29 * 参数,若想将参数设为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的学习暂时告一段落,开启新的学习征程!

 


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

本文为博主原创文章,转载请注明出处:

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

你可能感兴趣的文章
iOS开发UI篇—Quartz2D使用(矩阵操作)
查看>>
设计模式初学者笔记:Abstract Factory模式
查看>>
Hrbust1328 相等的最小公倍数 (筛素数,素因子分解)
查看>>
推荐一个内容滚动jquery插件
查看>>
淘宝的几个架构图
查看>>
Warning: Divide by zero.
查看>>
[Android Studio] Android Studio移除的Module如何恢复(转载)
查看>>
蝶若双生,花便盛开
查看>>
Android扩展 - 拍照篇(Camera)
查看>>
JAVA数组的定义及用法
查看>>
充分利用HTML标签元素 – 简单的xtyle前端框架
查看>>
设计模式(十一):FACADE外观模式 -- 结构型模式
查看>>
iOS xcodebuile 自动编译打包ipa
查看>>
程序员眼中的 SQL Server-执行计划教会我如何创建索引?
查看>>
【BZOJ】1624: [Usaco2008 Open] Clear And Present Danger 寻宝之路(floyd)
查看>>
cmake总结
查看>>
搜索引擎-倒排索引基础知识
查看>>
baby用品
查看>>
Jquery解析Json格式数据
查看>>
数据加密插件
查看>>