java调用存储过程的问题!!又搞到晚上11:00那位帮帮忙看看

_littlebee 2003-04-02 11:12:50
存储过程很简单,就是一个简单查询,不过是数据库采用的SQLSERVER所以,找不到jdbc中调用存储过程的例子,那位帮忙看看!!
我的程序如下
public ResultSet callReturn(String str){
init();//建立连接
try{
stmt = conn.prepareCall(str);
System.out.print("执行SQL语句:"+str);//测试
stmt.registerOutParameter(1,java.sql.Types.VARCHAR);
stmt.executeQuery();
return (ResultSet)stmt.getObject(1);
}catch(SQLException e){
e.printStackTrace();
}
System.out.print("执行失败!");
return null;
}
这个函数是用来调用存储过程的,返回一个ResultSet,可是总是出现NullPointerException,大家帮忙看看为什么,我的存储过程已经在DBMS上运行过了,没有问题
调用函数如下:

public static LinkedList getOpertorInfoByOwnerID(String value){
String sqlCall="{call sky.dt_selectOperatorByOwnerID ("+value+")}";
System.out.print("执行SQL语句:"+sqlCall);
ResultSet r=conn.callReturn(sqlCall);
System.out.println(sqlCall);
LinkedList list=new LinkedList();
try{
while (r.next()) {
list.add(new OwnerInfo(r.getString(1), r.getString(2)));
}
return list;
}catch(SQLException e){
e.printStackTrace();
}return null;

}
...全文
8 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
_littlebee 2003-04-03
头让我写存储过程,调用,得到查询结果,可是我觉得完全没有必要,还特别麻烦。
唉,参哪!!
我这么写老是出错
调用存储过程的函数是这样的:
public ResultSet callReturn(String str, String str1) {
init();
try {
System.out.print("执行SQL语句:" + str+"参数:"+str1);
stmt = conn.prepareCall(str);
stmt.setInt(1, Integer.parseInt(str1));
System.out.print("执行SQL语句:" + str+"参数:"+str1);
stmt.registerOutParameter(1,java.sql.Types.VARCHAR);
return stmt.executeQuery();
//return (ResultSet)stmt.getObject(1);
}
catch (SQLException e) {
e.printStackTrace();
}
System.out.print("执行失败!");
return null;
}
然后我再前台这么调用:
public static LinkedList getOpertorInfoByOwnerID(String value){
String sqlCall="{call dt_selectOperatorByOwnerID (?)}";
System.out.print("执行SQL语句:"+sqlCall);
ResultSet r=conn.callReturn(sqlCall,value);
System.out.println(sqlCall);
LinkedList list=new LinkedList();
try{
while (r.next()) {
list.add(new OwnerInfo(r.getString(1), r.getString(2)));
System.out.println(r.getString(2));
}
return list;
}catch(SQLException e){
e.printStackTrace();
}return null;
}
回复
pengdali 2003-04-03
public ResultSet callReturn(String str){
init();//建立连接
try{
stmt = conn.prepareCall(str);
System.out.print("执行SQL语句:"+str);//测试
stmt.registerOutParameter(1,java.sql.Types.VARCHAR);
return stmt.executeQuery();
}catch(SQLException e){
e.printStackTrace();
}
System.out.print("执行失败!");
return null;
}
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2003-04-02 11:12
社区公告
暂无公告