gpt4 book ai didi

Java:从未知大小的数据库中读取值

转载 作者:行者123 更新时间:2023-12-01 15:27:48 25 4
gpt4 key购买 nike

我正在尝试从 SQLite 数据库中读取值,但有以下问题:如果 API 只允许您逐行处理而无法检查有多少行,您会使用什么数据结构?我想强调一个事实,我想在最后返回一个二维数组...您可以列出列表然后进行转换吗?

最佳答案

我认为最好返回您尝试获取其数据的对象列表,例如,如果您想获取所有学生的数据库,您可以为此创建类(class):

public final class Student {
private int id;
private String name;
private int age;

public Student(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}

public int getId() {
return this.id;
}

// other getter methods
}

然后您可以检索列表中的所有学生

public List<Student> getAllStudents() throws SQLException {
List<Student> students = new ArrayList<Student>();

String select = "SELECT * FROM students";
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(select);

while ( resultSet.next() ) {
int id = resultSet.getInt(1);
String name = resultSet.getString(2);
int age = resultSet.getInt(3);

Student student = new Student(id, name, age);
students.add(student);
}

return students;
}

编辑:要获取结果集的大小,可以调用 resultset.last() 然后调用 resultset.getRow(),这里讨论过:

How do I get the size of a java.sql.ResultSet?

How to get a number of rows a ResultSet contains?

ResultSet resultSet = ps.executeQuery();
int rowcount = 0;
if (resultSet.last()) {
rowcount = resultSet.getRow();
resultSet.beforeFirst();
}

然后你可以构建你的二维数组:

    String[][] result = new String[rowCount][ColumnCount];

int i=0;
while (resultSet.next()) {
// build result[i] array
i++;
}

关于Java:从未知大小的数据库中读取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9959098/

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