java - 结果集显示为字符串

java - ResultSet displaying as String

我正在使用 ucanaccess 工具与我的访问数据库进行交互,但我不知道如何将生成的结果集显示或存储为字符串。

编辑:我试过 =System.out.println(resultSetId.getString(1)); 但只有 returns 个错误。 ResultSet resultSetId; String msAccDB = "D://Computer Science//passManager//src//Manager.accdb"; String dbURL = "jdbc:ucanaccess://" + msAccDB; connection = DriverManager.getConnection(dbURL); statement = connection.createStatement(); resultSetId = statement.executeQuery("SELECT ID FROM Passwords WHERE ID = \""+identifier+"\";"); System.out.println(resultSetId.getString(1));

出现错误Exception in thread "main" net.ucanaccess.jdbc.Ucanaccess在此处输入代码SQLException: invalid cursor state: identifier cursor not positioned on row in UPDATE, DELETE, SET, or GET statement: ; ResultSet is positioned before first row

编辑:添加 .next() 修复了它,谢谢!

ResultSet is positioned before first row

executeQuery return 是 ResultSet 时,它没有指向一行数据。您需要调用 resultSetId.next() 才能检索每一行。当 ResultSet 预计 return 多于一行时,这通常在 while 循环的上下文中完成,例如

while (resultSetId.next()) {
    System.out.println(resultSetId.getString(1));  // print value from each row
}

但是如果你只需要一行,你可以简单地调用它一次,例如,

if (resultSetId.next()) {
    System.out.println(resultSetId.getString(1));
} else {
    System.out.println("The ResultSet contained no rows.");
}