conn.prepareStatement(sql)报错java.lang.ArrayIndexOutOfBoundsException: 1
代码异常提示行localConn.prepareStatement(insertSql.toString());
报错信息:java.lang.ArrayIndexOutOfBoundsException: 1
错误代码片段:
int colCount = 0;
for (int i = 0; i < sourceRsmd.getColumnCount(); i++) {
if(sourceRsmd.getColumnName(i + 1).equalsIgnoreCase("rn")){
continue;
}
colCount++;
insertSql.append(sourceRsmd.getColumnName(i + 1));
insertSql.append(",");
paramSql.append("?,");
}
insertSql = insertSql.delete(insertSql.length()-1, insertSql.length());
insertSql.append(")");
insertSql.append(" VALUES(");
insertSql.append("?,"); // 额外增加一个参数占位符,用于维护时间戳字段
paramSql = paramSql.delete(paramSql.length() -1 , paramSql.length());
insertSql.append(paramSql.toString());
insertSql.append(")");
localPstmt = localConn.prepareStatement(insertSql.toString());
<p>先把insertSql.toString() 打印出来看一下.估计参数不匹配造成的</p>
回复 <a class="referer" target="_blank">@噗哈哈哈嗝</a> : 偶然,那就是某类数据有问题.你打印下sql,看看
偶发性的 我早上再次测试 运行五次一次失败。。。惆怅。
打印出来的sql 插入的字段数量和?值占位数量都是一致的
我这个是一个批处理。测试是用十万条数据进行insert批 只有部分出现这个问题。 数据量小的情况下没有我问题 测试另外一个表6完多条数据插入没有此错误。
<p>apache commons 了解下</p>
谢谢 我去看看
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。