所以我一直在尝试创建一个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;
}

===============>>#1 票数:2

这里有几个问题:

  • 您使用1而不是0开始索引(如Kon所述)
  • 你设置给定rows_list [rows] [cols] 4次(其中3次将替换实例)
  • 您可以对行进行双重迭代(一个在结果集中返回,第二次在使用行计数时)。

请参阅下面的解决方案来解决这些问题:

  ...
  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){
  ...

  ask by user3363537 translate from so

未解决问题?本站智能推荐:

2回复

从mysql表创建多维数组

我想从3个mysql表(sections / rubriques / category)创建3维数组: 这是我的代码: 在语句中:$ output [$ i] ['rubr'] [$ ii] = $ rubrique-> rubrique_title; 你能给我这个
1回复

如何将MySQL表中的行存储到Java中的数组中

我正在尝试将数据库表中的行存储到数组中。 我在NetBeans IDE 7.1.1中总是收到此错误“类或接口,期望枚举” 这是我写的代码 知道我哪里出错了吗?
2回复

MySQL in()多维数组

以下工作(数组由另一个MySQL查询填充): 但是我该怎么做? 所以我需要获取所有id,如何在这个多维数组中做到这一点? 谢谢!
1回复

在PHP中从MySQL表创建多维数组树

我试图将我的mysql表组织成一个多维php树数组。 例如,我正在尝试将我的产品按层次结构进行组织,以便于选择,以缩小结果范围。 我返回了这样的mysql行: ...等等 请注意,最后一个数组值是产品ID。 我正在寻找编写递归函数的帮助,该递归函数将导致数组如下所
2回复

将mysql数据库值检索到数组中

如何使用java将mysql数据库值检索到数组中。如果我从mysql数据库检索学生名称意味着如何使用java获取mysql表中的所有学生名称?给我一些例子。 提前致谢
1回复

将MySQL表与多维数组相关

我有一个菜单表: id, slug, label, parent 父代与id有关系,因此如果您有: 1, 'foo-bar', 'Foo Bar', NULL 这将是一个根项目,而: 2, 'foo', 'Foo ', 1 将属于“ foo-bar”。 然后
2回复

PHP MySQL结果多维数组到自定义表

我在mysql上有以下表格: 现在,我可以从该表中选择一个范围,其中日期介于2个值之间(假设是一周)。 我猜这为我提供了一个多维数组(我是菜鸟,可惜...) 我希望能够扩展结果并将它们分组在这样的表上: 现在,如果某个学生在本周的特定日期不在场,或者他没有设法筹集到任何款
1回复

如何将多维数组转换为mysql表

我有以下代码以多维数组的形式创建修订时间表。 每个部分代表每天要修改的时间,每个小时代表要修改的时间。我试图将这个多维数组转换为mysql中的表,以便该时间表对用户友好并且可以保存等等。 这是用于生成时间表以及生成的时间表的代码。 这是数组结构,它可以用于7个子数组,但是我只显示了前
1回复

如何使用PHP从MySQL表循环多维数组

在阅读了多个stackoverflow问题之后,我仍然对为什么无法使它正常工作感到困惑。 我试图将mysql表的所有行都放入多维数组。 我希望只是找到一个简单的示例,但到目前为止,我还没有完全理解。 我在Google和Stack上看到的示例主要是关于解析或使其在页面上迭代的。 我试图
1回复

创建多维数组后,MySQL左联接

我有2个表,外键是'timesection_id'。 第一表:时区 | id | 名称| 时间| 位置| 第二表内容 | id | 标题| short_desc | desc | img | 位置| timesection_id | 我想创建