gpt4 book ai didi

java - 结果集到数组对象

转载 作者:行者123 更新时间:2023-12-01 13:43:23 24 4
gpt4 key购买 nike

所以我有这个代码

 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
Object[] possibilities=null;
try {
possibilities = getNames();
} catch (Exception ex) {
System.out.println("Thiss error "+ex.getMessage());
}
String s;
// TODO add your handling code here:
s = (String) JOptionPane.showInputDialog(this, "Complete the sentence:\n"
+ "\"Green eggs and...\"",
"Customized Dialog",
JOptionPane.PLAIN_MESSAGE,
null,
possibilities,
"ham"); // TODO add your handling code here:
}
public Object[] getNames() throws Exception {
Object[] possibilities = null;
int i=0;
rs = ds.getResultSet("SELECT name FROM staff");
possibilities= new Object[rs.getMetaData().getColumnCount()];
System.out.println("Result set has data "+rs.next());
while (rs.next()) {
System.out.println("Data from result set "+rs.getString(1));
possibilities[i] = rs.getObject(1);
System.out.println("Data from array "+possibilities[i]);
i++;
}

return possibilities;
}

我想获取员工数据库中名称(字符串)的值,这样我就可以在 Joptionpane 中使用它作为选项,但是当我执行这个时我得到的就是我得到的

Result set has data  true
Data from result set jana dfjks
Data from array jana dfjks
Data from result set jkdfhjk jfhkjdsf
Thiss error 1

如何从拥有超过 20 个结果的数据库中获取所有结果。

通过替换解决 可能性=新对象[rs.getMetaData().getColumnCount()];与一个可能性=新对象[100];

但我想知道如何根据返回的结果数量使其动态

最佳答案

列数无关紧要 - 您知道它只是一列,因为您的 SELECT 语句仅选择一列。

您事先不知道将返回多少行。所以这里使用数组是不合适的。您需要某种集合,可能是列表。

一些示例代码:

List<String> nameList = new ArrayList<String>();

while (rs.next()) {
nameList.add(rs.getString(1));
}

现在您的列表已包含从数据库中提取的所有名称。

关于java - 结果集到数组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20518470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com