我需要快速帮助,谢谢!
我尝试使用以下代码检查数据库中是否存在成员:
public boolean memberExists(int id) {
try {
open();
PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM client WHERE id = ?");
pstmt.setInt(1,id);
boolean _res = pstmt.executeQuery().getRow() > 0;
close();
return _res;
}
catch (SQLException e){ System.out.print(e); }
return false;
}
}
方法open()
获取新连接,close()
方法关闭连接。很简单。
让我疯狂的是它总是返回 0行。即使查询SELECT * FROM client
也会返回 0行。
我使用 sqlitebrowser.exe 检查我的数据库,完全相同的查询返回正确的行数。
我认为我之前已经遇到过这个问题,但我不记得它究竟是什么。我觉得我错过了什么。
另外,在我的代码中,我可以 INSERT INTO 数据库,但不能 SELECT 。这真的很奇怪。
open()
方法。
public DBConnector open() {
boolean _exists = new File(path).exists();
try {
conn = DriverManager.getConnection("jdbc:sqlite:" + path);
if (!_exists) create();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
return this;
}
答案 0 :(得分:1)
返回:当前行号;如果没有当前行,则为0
这是当前行号,而不是结果集中的行数。
您可以通过多种方式获取行数,请参阅: