日期:2014-05-20  浏览次数:21022 次

对数据库进行操作时抛出java.lang.StringIndexOutOfBoundsException
我在该方法中调用自定义函数,向表中插入数据。可是在执行的时候抛出了:
java.lang.StringIndexOutOfBoundsException: String index out of range: 27
异常。

方法如下:
//注册用户
public boolean addUser(User user) throws Exception {

try
{
//数据库连接对象
conn = LinkedDB.getInstance();

//预处理
CallableStatement state = conn.prepareCall("{?=call paymoney(?,?,?,?,?)");

//注册返回结果
state.registerOutParameter(1, Types.INTEGER);

//设置用户姓名
state.setString(2, user.getUser_name());

//设置用户密码
state.setString(3, user.getPassword());

//设置用户地址
state.setString(4, user.getAddress());

//设置用户手机号
state.setString(5, user.getUser_phone());

state.setString(6, user.getUser_postalcode());

//执行sql语句
state.execute();

//判断返回结果
if(1 == state.getInt(1))
{
return true;
}

}finally
{
close();
}

return false;
}
自定函数我已经测试过了可以像表中插入数据。。请高手指点。。。

------解决方案--------------------
"{?=call paymoney(?,?,?,?,?)}"

最后少了一个}