JDBC执行存储过程的标准语法有两种形式:
1:{call procedureName para1, para2,...}
2:{?=call procedureName para1, para2,...}其中参数是可选的。如果存储过程不取任何参数,则调用格式为:
{call procedureName}如果存储过程有返回值,则应该使用形式2。存储过程中的任何参数都可以使用?代替。如果存储过程会改变参数值,则在调用存储过程的执行语句前,应当先注册输出参数,如下所示
CallableStatement cstmt = conn.prepareCall("{call findName}");
cstmt.registerOutParameter(1, Types.VARCHAR);
cstmt.execute();
System.out.println("the name is " + cstmt.getString(1));说明:到现在为止我还没有真正用过存储过程,并不知道是否会成功,自己试一下。我认为存储过程有一个很大的缺点,如果客户的数据库变了,几乎所有存储过程语句要重写。
1:{call procedureName para1, para2,...}
2:{?=call procedureName para1, para2,...}其中参数是可选的。如果存储过程不取任何参数,则调用格式为:
{call procedureName}如果存储过程有返回值,则应该使用形式2。存储过程中的任何参数都可以使用?代替。如果存储过程会改变参数值,则在调用存储过程的执行语句前,应当先注册输出参数,如下所示
CallableStatement cstmt = conn.prepareCall("{call findName}");
cstmt.registerOutParameter(1, Types.VARCHAR);
cstmt.execute();
System.out.println("the name is " + cstmt.getString(1));说明:到现在为止我还没有真正用过存储过程,并不知道是否会成功,自己试一下。我认为存储过程有一个很大的缺点,如果客户的数据库变了,几乎所有存储过程语句要重写。
解决方案 »
- 推荐一个Web Service的网站
- 在线等....跪求
- 100分:问个jFreeChart曲线图的问题???
- 怎样在TOMCAT启动的时候自动执行事先写好的一个类?
- 足彩胜负彩的程序,急~~~~~~~~~~~~~~~~~~~~
- servlet使用数据库连接bean?
- jsp 如何在客户端创建文件夹?
- 为什么我总是陪到些奇怪的问题,帮帮我吧
- jsp中中文处理问题,让我很久没有睡觉了??????
- 如何让button的value内容显示为斜体
- 200分,奇怪的servlet页面刷新的问题??????????
- 谁能解释一下JAVA中各种编码机制的区别?比如ISO-8859-1和gb2312有什么区别?GBK和gb2312是不是一样的编码机制?
比如说我返回的结果值该如何绑定,等, 返回值如何绑定, 如在参数中既有in 也有out 的该如何绑定 ?谢谢
call.setString(1,"strTableName");
call.registerOutParameter(2,OracleTypes.CURSOR);// 注册out参数的SQL数据类型
call.execute();
rs=(ResultSet)call.getObject(2);// 取得得数据结果集合//hqo_test存储过程名,两个参数,第一个为输入参数即in类型为string
//第二个为输出参数,即out,是一个结果集.