Kann mir jemand sagen, was ich hier falsch mache? Ich betreibe das etwa 100-mal, und etwa 2-8 mal mit Fehler fehlschlägt: java.lang.ArrayIndexOutOfBoundsException: 10
java.lang.ArrayIndexOutOfBoundsException beim Erstellen eines Arrays aus JDBC ResultSet
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;
}
Können Sie: geben Sie den Code von 'getResultSwitch' und geben Sie uns die Zeilennummer, wo die Ausnahme ausgelöst wird? Kleiner Tipp, verwenden Sie Ihre Daten erneut: Ersetzen Sie "getResultSwitch (MetaData.getColumnType (i) ..." von 'getResultSwitch (this.columnTypes [i] ...' – Destroyica
Was ist die Zeilennummer, wo Ausnahme ausgelöst wird? Zeilen von Ihrem Stacktrace, und können Sie verschachtelte Methodenaufrufe mit Variablen-Definitionen neu formatieren, um das Stammverzeichnis der Ausnahme zu finden –