存储过程:
CREATE procedure get_info @name varchar(50),@phone varchar(13),@addr varchar(50)
as
select *
from mytest
GOJSP页面中的调用:
……
Connection conn = DriverManager.getConnection(url, username, password);
String sql = "execute get_info";
Statement stmt = conn.createStatement();
ResultSet res = stmt.executeQuery(sql);
while(res.next())
……报错:
[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]过程 'get_info' 需要参数 '@name',但未提供该参数。
CREATE procedure get_info @name varchar(50),@phone varchar(13),@addr varchar(50)
as
select *
from mytest
GOJSP页面中的调用:
……
Connection conn = DriverManager.getConnection(url, username, password);
String sql = "execute get_info";
Statement stmt = conn.createStatement();
ResultSet res = stmt.executeQuery(sql);
while(res.next())
……报错:
[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]过程 'get_info' 需要参数 '@name',但未提供该参数。
解决方案 »
- java Web 从何学起?
- 项目在ie和ff下的离奇差异
- 程序在执行getHibernateTemplate().find()语句,报空指针异常
- 关于web-app_2_4.xsd的问题,高手进下
- 大家帮帮忙啊
- 对于oracle,我在写连接字符串的时候能不能指定字符集,谢谢
- JSP中表达式的疑问
- 老大给看看 如何在jsp中得到javascript的数据存入我本地的数据库! 谢谢了@
- 小弟吐血跪求lucene的问题解决,否则有丢工作的危险,请大家帮帮我好么,回头我一定好好学习,帮我顶下,拜托。。。555。。。
- 初学者问题:serverlet找不到……
- 没工作经验找不到工作怎么办?
- oracle的个小问题
ResultSet res = stmt.executeQuery();
while(res.next())
{}
如果你的存储过程要给参 就该这样写 有几个参数给你个问号CallableStatement calll = con.prepareCall("{call execute get_info(?,?,?,?,?)}");
下面是给值 你有实体表就可以写成这样 根据相应的表的属性来给值
calll.setString(1,"值");
calll.setInt(2, in.getAge());
calll.setString(3, in.getSex());
calll.setInt(4, in.getPhone());
calll.setString(5, in.getAdress());
ResultSet res = stmt.executeQuery();
while(res.next())
{}
我们老师说,你们现在不用这个存储过程,过一段时间再用!
现在看了,原来就是这样!把sql语句变成调用存储过程就可以了!
谢谢了!
顶一下啊!
嗨,我说小弟弟,先不说参数,楼主本身的那种调用就有问题的,怎么可能只是简单的把sql语变成存储过程....
虽然我也没有在java里用过储蓄过程,但我在.net里用过,所以感觉4楼才是正解
学习...