java - 显示为String的ResultSet

时间:2017-11-28 11:05:49

标签: java sql ms-access ucanaccess

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

编辑:我已经尝试了= System.out.println(resultSetId.getString(1));,但这只会返回错误。     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()修复它,谢谢!

1 个答案:

答案 0 :(得分:0)

  

ResultSet位于第一行

之前

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

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.");
}