所以我一直在尝试使用String[][]
创建一个JDBC
从数据库中提取项目但是还没有能够将结果导入String[][]
我做错了我得到这个错误:
java.lang.ArrayIndexOutOfBoundsException: 4
at modelo.ConectorBaseDatos.getRows_From_DB(ConectorBaseDatos.java:194)
at modelo.ConectorBaseDatos.main(ConectorBaseDatos.java:237)
第194行是:
rows_list[rows][cols] = result.getString(2);
以下是代码:
public String[][] getRows_From_DB(String tableName, String db, String querY){
try{
int columnCount = this.getTableInfo(tableName, db, true, false) - 1;
int rowCount = this.getTableInfo(tableName, db, false, true) - 1;
rows_list = new String[rowCount][columnCount];
Connection con = getConnect_to_DB("fifa");
PreparedStatement statement = con.prepareStatement(querY);
ResultSet result = statement.executeQuery();
while(result.next()){
for(int rows = 1; rows <= rowCount; rows++){
for(int cols = 1; cols <= columnCount; cols ++){
rows_list[rows][cols] = result.getString(2);
rows_list[rows][cols] = result.getString(3);
rows_list[rows][cols] = result.getString(4);
rows_list[rows][cols] = result.getString(5);
}
}
}
}catch(Exception e){
e.printStackTrace();
JOptionPane.showMessageDialog(null, "Error en getRows_From_DB()" + e, "ERROR!", JOptionPane.ERROR_MESSAGE, null);
}
return rows_list;
}
答案 0 :(得分:2)
有几个问题,在这里:
请参阅下文,了解解决这些问题的解决方案:
...
ResultSet result = statement.executeQuery();
int rowNumber = 0
while(result.next()){
//Alternatively iterate here in another loop through all columns.
rows_list[rowNumber][0] = result.getString(2);
rows_list[rowNumber][1] = result.getString(3);
rows_list[rowNumber][2] = result.getString(4);
rows_list[rowNumber][3] = result.getString(5);
}
}catch(Exception e){
...