开发者社区> 问答> 正文

java.lang.ArrayIndexOutOfBoundsException: 1 ?报错

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());

 

展开
收起
爱吃鱼的程序员 2020-06-06 09:49:24 766 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
                        <p>先把insertSql.toString() 打印出来看一下.估计参数不匹配造成的</p>
                    
    
                            回复 <a class="referer" target="_blank">@噗哈哈哈嗝</a>  : 偶然,那就是某类数据有问题.你打印下sql,看看
                        
    
                            偶发性的 我早上再次测试 运行五次一次失败。。。惆怅。
    
                        
    
                            打印出来的sql 插入的字段数量和?值占位数量都是一致的
    
                        
    
                            我这个是一个批处理。测试是用十万条数据进行insert批 只有部分出现这个问题。 数据量小的情况下没有我问题 测试另外一个表6完多条数据插入没有此错误。
    
                        
    
                        <p>apache commons 了解下</p>
                    
    
                            谢谢 我去看看 
    
    2020-06-06 09:49:38
    赞同 展开评论 打赏
问答分类:
SQL
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载