日期:2014-05-17  浏览次数:20639 次

关于java调用存储过程
java调用存储过程但参数传递不进去是什么情况?
代码如下

  CallableStatement       cs = getDataSource().getConnection().prepareCall("{call RECEIVE_CHARGE(?,?,?,?,?,?,?)}");
        int i=1;
        cs.setString(i++,strdate );
        cs.setString(i++, vo.getOperator());
        cs.setString(i++, "2014");
        cs.setString(i++, "2013-11-15");
        cs.setString(i++, "2014-3-15");
        cs.setInt(i++, 1);
        cs.setString(i++, vo.getHousecode());
        cs.execute();
        getDataSource().getConnection().close();


这种情况下后台一直在报错 说接收不到 第三个 2014 那个参数 这是为何? 求解决办法

------解决方案--------------------
引用:
java调用存储过程但参数传递不进去是什么情况?
代码如下

  CallableStatement       cs = getDataSource().getConnection().prepareCall("{call RECEIVE_CHARGE(?,?,?,?,?,?,?)}");
        int i=1;
        cs.setString(i++,strdate );
        cs.setString(i++, vo.getOperator());
        cs.setString(i++, "2014");
        cs.setString(i++, "2013-11-15");
        cs.setString(i++, "2014-3-15");
        cs.setInt(i++, 1);
        cs.setString(i++, vo.getHousecode());
        cs.execute();
        getDataSource().getConnection().close();


这种情况下后台一直在报错 说接收不到 第三个 2014 那个参数 这是为何? 求解决办法



为什么要成 i++???直接1  2  3  4  5 不行吗  
------解决方案--------------------
检查事务,在别的事务中调取。