我有一个德比用户数据库,我查询时,当用户点击应用程序登录。为什么此查询返回NULL?
但是,当我用参数[user]查询users表时,derby返回一个空Object而不是它应该返回的记录。
这里是我的代码:
String ssql = "SELECT * FROM USERS WHERE UNAME LIKE ?";
try{
DriverManager.registerDriver(new org.apache.derby.jdbc.EmbeddedDriver());
con = DriverManager.getConnection(url);
sql = con.prepareStatement(ssql, Statement.RETURN_GENERATED_KEYS);
sql.setString(1, cbox_chooseUser.getSelectedItem().toString());
sql.executeQuery();
ResultSet rs = sql.getGeneratedKeys();
try{
while (rs.next()) {
if(rs.getString("PW").toCharArray().equals(txt_password.getPassword())){
sql.close();
con.close();
return true;
}
} catch (NPE ...) {...}
}
我尝试了多次机智测试用户同时与PW和用户名设置为“测试”;但我总是得到同样的错误。 为什么记录集始终为空?
感谢您的帮助:)
的executeQuery已经返回结果。并且:您不应该使用“选择*”。你想要“PW”,所以“选择PW”... – Fildor
哪些键将从SELECT语句生成?你的意思是'ResultSet rs = sql.executeQuery();'? – Berger
你如何从'ResultSet'发布字符串结果? – zed