【问题标题】:Filling several JTextFields from DB从 DB 填充几个 JTextField
【发布时间】:2012-01-08 23:41:18
【问题描述】:

我想用从数据库中检索到的数据填充几个 JTextField。 我知道,我可以这样做:

while (rs.next()) {
   tfName.setText(rs.getString("name"));
   tfAge.setText(rs.getString("age"));
}

但是有没有更聪明的方法,在 select 方法的末尾只有一个 return

【问题讨论】:

  • 您指的是哪种选择方法?另请注意,拥有这样一个 while 循环来更新您的 JTextField 实例并没有多大意义,因为每个 JTextField 只能包含一个 String 作为文本。还不如直接取ResultSet的最后一个条目
  • 这只是一个例子,就我而言,我只会收到一个结果。我的意思是数据库类中的一般选择方法。

标签: java jdbc jtextfield


【解决方案1】:

您可以将您的 JTextFields 放在 Map<String, JTextField> 中,然后使用数据库列键字符串作为文本字段映射(例如称为 fieldMap)的键,并且还有这些键字符串的数组。那么你可以这样做:

while (rs.next()) {
  for (String key: KEY_STRINGS) {
    fieldMap.get(key).setText(rs.getString(key));
  }
}

话虽如此,while (rs.next()) 让我有点恼火,因为我担心 while 会快速遍历数据库行并且只会真正显示数据库的最后一行。这需要改变。

【讨论】:

    猜你喜欢
    • 2015-06-19
    • 2012-03-14
    • 2017-10-08
    • 2014-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多