调用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没有问题,其他数据库操作都可以.

解决方案 »

  1.   

    测试了一下:
    改为
    {call sp_rankquery('XXXXXX','123456')}没报错,可以运行.怎么会这样?
      

  2.   

    “badge” 估计是这个变量值为null
      

  3.   

    写成:
    cs = conn.prepareCall("{call sp_rankquery('"+ badge + "','" + aEntity.getPassword() + "')}");就可以了,想不通
      

  4.   

    {call 过程名[(?, ?, ...)]}返回结果参数的过程的语法为: {? = call 过程名[(?, ?, ...)]}不带参数的已储存过程的语法类似: {call 过程名}
    摘自http://www.knowsky.com/1674.html楼主可以看看先
      

  5.   

    java.lang.NullPointerException 这个异常很容易看出是cs为空的异常啊