如何通过jdbc调用存储过程


Posted in 面试题 onApril 19, 2012
在java.sql.Connection类中的public CallableStatement prepareCall(String sql)方法调用存储过程。Sql为an SQL statement that may contain one or more ‘?’ parameter placeholders. Typically this statement is a JDBC function call escape string.,即调用存储过程语句
Example:
Stored procedures:
Create or replace procedure addMember(name in varchar2(50),sex in varchar2(50)) as
begin
insert into family f (f.name,f.sex) values (name,sex);
end addMember;
Java source code:
…………………………………get Connection
String procedure = “{call addMember(?,?)}”;
CallableStatement cstmt = conn.prepareCall(procedure);
cstmt.setString(1,”马锐”);
cstmt.serString(2,”男”);
cstmt.excute();
………..close connection

若是需要返回值,我们可以通过function实现。可用下面方法
Example:
Stored procedures:
Create or replace function viewMember return types.cursortype as
family_cursor types.cursortype;
begin
open family_cursor for select f.name,f.sex from family f
return family_cursor
end addMember;
Java source code:
…………………………………get Connection
String procedure =”begin :1:=viewMember;end;”;
CallableStatement cstmt = conn.prepareCall(procedure);
cstmt.registerOutParameter(1,OracleTypes.CURSOR);
cstmt.execute();
ResultSet rset = (ResultSet)cstmt.getObject(1);
while(rset.next())
System.out.println(rset.getString(1);
cstmt.close();
)
………..close connection

Tags in this post...

面试题 相关文章推荐
什么是Smarty变量操作符?如何使用Smarty变量操作符
Jul 18 面试题
JSF面试题:如何管量web层中的Bean,用什么标签。如何通过jsp页面与Bean绑定在一起进行处理?
Oct 05 面试题
下述程序的作用是计算机数组中的最大元素值及其下标
Nov 26 面试题
我看到了用指针调用函数的不同语法形式
Jul 16 面试题
NULL是什么,它是怎么定义的
May 09 面试题
分布式数据库需要考虑哪些问题
Dec 08 面试题
System.Array.CopyTo()和System.Array.Clone()有什么区别
Jun 20 面试题
如何判断计算机可能已经中马
Mar 22 面试题
请说出这段代码执行后a和b的值分别是多少
Mar 28 面试题
介绍一些UNIX常用简单命令
Nov 11 面试题
UNIX文件类型
Aug 29 面试题
Java Servlet的主要功能和作用是什么
Feb 14 面试题
北京振戎融通Java面试题
Sep 03 #面试题
Java模拟试题
Nov 10 #面试题
Java如何支持I18N?
Oct 31 #面试题
Ejb技术面试题
Apr 29 #面试题
Java面试笔试题大全
Nov 23 #面试题
JSF界面控制层技术
Jun 17 #面试题
Java基础面试题
Nov 02 #面试题
You might like
PHP session会话的安全性分析
2011/09/08 PHP
PHP 日,周,月点击排行统计
2012/01/11 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
2014/03/08 PHP
PHP has encountered a Stack overflow问题解决方法
2014/11/03 PHP
修改WordPress中文章编辑器的样式的方法详解
2015/12/15 PHP
php实现socket推送技术的示例
2017/12/20 PHP
PHP 多任务秒级定时器的实现方法
2018/05/13 PHP
可输入的下拉框
2006/06/19 Javascript
JavaScript中的连字符详解
2013/11/28 Javascript
jquery实现网页查找功能示例分享
2014/02/12 Javascript
Jquery搜索父元素操作方法
2015/02/10 Javascript
深入理解JavaScript系列(19):求值策略(Evaluation strategy)详解
2015/03/05 Javascript
JavaScript实现点击自动选择TextArea文本的方法
2015/07/02 Javascript
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
2015/08/11 Javascript
BootStrap表单验证实例代码
2017/01/13 Javascript
Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
2017/06/09 jQuery
layer子层给父层页面元素赋值,以达到向父层页面传值的效果实例
2017/09/22 Javascript
Layer.js实现表格溢出内容省略号显示,悬停显示全部的方法
2019/09/16 Javascript
Python实现给qq邮箱发送邮件的方法
2015/05/28 Python
Python cookbook(数据结构与算法)字典相关计算问题示例
2018/02/18 Python
Python变量赋值的秘密分享
2018/04/03 Python
数据清洗--DataFrame中的空值处理方法
2018/07/03 Python
NumPy 基本切片和索引的具体使用方法
2019/04/24 Python
Python可迭代对象操作示例
2019/05/07 Python
PyQt5根据控件Id获取控件对象的方法
2019/06/25 Python
详解Python3 pandas.merge用法
2019/09/05 Python
Python实现曲线拟合的最小二乘法
2021/02/19 Python
Web页面中八种创建多列等高(等高列布局)的实现技术
2012/12/24 HTML / CSS
CSS3 不定高宽垂直水平居中的几种方式
2020/03/26 HTML / CSS
linux面试相关问题
2013/04/28 面试题
乔迁宴答谢词
2014/01/21 职场文书
公司管理建议书
2015/09/14 职场文书
电力培训学习心得体会
2016/01/11 职场文书
详解Laravel框架的依赖注入功能
2021/05/27 PHP
Sql Server之数据类型详解
2022/02/28 SQL Server