任何人都可以告诉我我在做什么错吗?我跑这个约100倍,约2-8次失败,出现错误:java.lang.ArrayIndexOutOfBoundsException: 10
从JDBC ResultSet创建数组时创建java.lang.ArrayIndexOutOfBoundsException
public String[][] queryResult(String QUERY) throws SQLException{
Connection con = getPoolConnection();
Statement st2 = con.createStatement();
ResultSet rs = st2.executeQuery(QUERY);
System.out.println("Run query: "+QUERY);
// outPrint(logFile,"Run query: "+QUERY+"");
ResultSetMetaData metaData = rs.getMetaData();
int noOfColumns = metaData.getColumnCount();
//System.out.print(metaData.toString()+" : ");
this.columnName = new String[noOfColumns];
this.columnTypes = new String[noOfColumns];
for (int i = 1; i <= noOfColumns; i++) {
this.columnName[i-1] = metaData.getColumnLabel(i);
this.columnTypes[i-1] = metaData.getColumnTypeName(i);
System.out.print(this.columnName[i-1]+" - "+this.columnTypes[i-1]+" , ");
}
System.out.println(" - ");
rs.last();
int noOfRows = rs.getRow();
rs.beforeFirst();
String[][] result = new String[noOfRows][noOfColumns];
int loop = 0;
while(rs.next()) {
loop++;
for (int i = 1; i <= noOfColumns; i++) {
result[loop-1][i-1] = getResultSwitch(metaData.getColumnType(i), rs, i);
//System.out.println("result "+this.columnTypes[i-1]+" : "+result[loop-1][i-1]);
System.out.print(result[loop-1][i-1]+" , ");
}
System.out.println(" - ");
}
rs.close();
st2.close();
con.close();
//System.out.println("Closed connection.");
return result;
}
你可以:提供`getResultSwitch`的代码并给我们提供异常的行号? 小建议,重用您的数据:替换`getResultSwitch(metaData.getColumnType(i)...` `getResultSwitch(this.columnTypes [i] ...` – Destroyica 2011-09-30 13:40:04
什么是行号引发异常?提供一些你可以重新格式化带有变量定义的嵌套方法调用,以查找异常的根 – 2013-08-18 04:59:58