gpt4 book ai didi

java - 如何获取 java.sql.ResultSet 的大小?

转载 作者:行者123 更新时间:2023-11-29 06:24:28 26 4
gpt4 key购买 nike

我想在 while 循环中获取 ResultSet 的大小。

尝试了下面的代码,我得到了我想要的结果。但它似乎与 result.next() 搞混了,如果我这样做,while 循环只会循环一次。这样做的正确方法是什么?

result.first();
while (result.next()){

System.out.println(result.getString(2));
System.out.println("A. " + result.getString(5) + "\n" + "B. " + result.getString(6) + "\n" + "C. " + result.getString(7) + "\n" + "D. " + result.getString(8));
System.out.println("Answer: ");
answer = inputquiz.next();

result.last();

if (answer.equals(result.getString(10))) {
score++;
System.out.println(score + "/" + result.getRow());
} else {
System.out.println(score + "/" + result.getRow());
}
}

最佳答案

What's the proper way of doing this?

将其映射到 List<Entity> .由于您的代码远非 self 记录(您使用的是索引而不是列名),因此我无法给出一个非常合适的示例。所以我要Person例如。

首先创建一个 javabean 类来表示单行包含的内容。

public class Person {
private Long id;
private String firstName;
private String lastName;
private Date dateOfBirth;

// Add/generate c'tors/getters/setters/equals/hashcode and other boilerplate.
}

(像 Eclipse 这样的像样的 IDE 可以自动生成它们)

然后让JDBC做下面的工作。

List<Person> persons = new ArrayList<Person>();

while (resultSet.next()) {
Person person = new Person();
person.setId(resultSet.getLong("id"));
person.setFirstName(resultSet.getString("fistName"));
person.setLastName(resultSet.getString("lastName"));
person.setDataOfBirth(resultSet.getDate("dateOfBirth"));
persons.add(person);
}

// Close resultSet/statement/connection in finally block.

return persons;

那你就可以了

int size = persons.size();

然后替换您的代码示例

for (int i = 0; i < persons.size(); i++) {
Person person = persons.get(i);
System.out.println(person.getFirstName());
int size = persons.size(); // Do with it whatever you want.
}

另见:

关于java - 如何获取 java.sql.ResultSet 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5131331/

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