JAVA 调用存储过程报NullPointerException,请教

searchermail 2006-06-21 05:31:18
调用Java程序如下:
.....
CallableStatement cs = null;
cs = conn.prepareCall("{call sp_rankquery(?,?)}");
cs.setString(1, badge);
cs.setString(2, aEntity.getPassword());

rs = cs.executeQuery();
......

存储过程为:
CREATE PROCEDURE sp_rankquery @workernumber0 nvarchar(50),@password0 nvarchar(16) AS
If exists(select ID from account where Password=@password0 and ID=@workernumber0)
select rank from account where rank is not NULL and rank<>'不聘' and rank <>'待定' and Password=@password0 and ID=@workernumber0
GO

报错如下:
在cs.setString(1, badge);位置报java.lang.NullPointerException

注: connection没有问题,其他数据库操作都可以.
...全文
212 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
smlovetp 2006-06-22
  • 打赏
  • 举报
回复
java.lang.NullPointerException 这个异常很容易看出是cs为空的异常啊
eqxu 2006-06-22
  • 打赏
  • 举报
回复
{call 过程名[(?, ?, ...)]}

返回结果参数的过程的语法为:

{? = call 过程名[(?, ?, ...)]}

不带参数的已储存过程的语法类似:

{call 过程名}




摘自http://www.knowsky.com/1674.html

楼主可以看看先
searchermail 2006-06-22
  • 打赏
  • 举报
回复
写成:
cs = conn.prepareCall("{call sp_rankquery('"+ badge + "','" + aEntity.getPassword() + "')}");

就可以了,想不通
searchermail 2006-06-22
  • 打赏
  • 举报
回复
那个badge是有值的。不为空
twj1979 2006-06-21
  • 打赏
  • 举报
回复
“badge” 估计是这个变量值为null
searchermail 2006-06-21
  • 打赏
  • 举报
回复
测试了一下:
改为
{call sp_rankquery('XXXXXX','123456')}

没报错,可以运行.怎么会这样?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧