【问题标题】:Storing values inside while loop using JDBC使用 JDBC 在 while 循环中存储值
【发布时间】:2016-06-26 19:39:50
【问题描述】:
ResultSet rs = dbmd.getSchemas(); 
while(rs.next()) {  
    String DbNames = rs.getString("TABLE_SCHEM");
}

我正在尝试存储DbNames 的值并稍后使用它。我尝试使用ArrayList

ResultSet rs = dbmd.getSchemas(); 
ArrayList<String> dbs = new ArrayList<>();
while(rs.next()) {
    dbs.add(rs.getString("TABLE_SCHEM"));
}
for(String[] s : dbs)
{
   System.out.println(Arrays.toString(s));
}

我是编程新手,我使用 StackOverflow 资源解决了我的问题,但我仍然遇到问题。请帮我解决这个问题。

【问题讨论】:

  • 您遇到了什么问题?
  • 我必须提醒你,一旦你知道问题出在哪里,就不要在问题中修复你的代码,让它保持错误。这样,查看此问题的其他人将了解问题所在以及给出的答案为何合适。

标签: java while-loop metadata teradata resultset


【解决方案1】:

目前,您的 ArrayList 是 raw type,因为您尚未为 ArrayList 指定数据类型。使用

将您的 ArrayList 声明更改为 generic type
ArrayList<String> dbs = new ArrayList<>();

这样,当您稍后尝试访问这些值时,它们将是 String 而不是 Object

您的新代码将是

ResultSet rs = dbmd.getSchemas();
ArrayList<String> dbs = new ArrayList<>();
while(rs.next()) { 
    dbs.add(rs.getString("TABLE_SCHEM"));
}
for(String s : dbs) {
    System.out.println(s);
}

【讨论】:

    【解决方案2】:

    创建ArrayList 以保存从结果集中检索到的数据,如下所示:

    ResultSet resultset = ;
    ArrayList<String> arrayList = new ArrayList<String>(); 
    while (resultset.next()) {            
        arrayList.add(resultset.getString('TABLE_SCHEM'));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-19
      • 2018-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-28
      相关资源
      最近更新 更多