Java ResultSet提前关闭



我遇到了一个似乎无法解决的问题。我正在用swing用java注册和登录,并用java.sql.*和jdbc将其连接到sqlite数据库。当我在注册后尝试登录时,它显示错误ResultSet closed。有人能帮我吗?我相信问题出在其中一个如果没有,这里有项目链接https://bitbucket.org/jrdevtech/library-management-system/src我相信它会在AppGui中,我只在isFirstUse方法和两个按钮操作中使用了ResultSet


执行的公共无效操作(ActionEvent arg0({

PreparedStatement prep = null;
try {
String query = "INSERT INTO newuser"
+ "(name, dob, phonenumber, username, 
password, uuid)"
+ "VALUES (?,?,?,?,?,?)";
connection = databaseConnection.dataConnector();
prep = connection.prepareStatement(query);
prep.setString(1, txtName.getText());
prep.setString(2, txtDob.getText());
prep.setString(3, txtPhone.getText());
prep.setString(4, txtUsername.getText());
prep.setString(5, txtPassword.getPassword().toString());
prep.setString(6, UUID.randomUUID().toString());
prep.executeUpdate();
}catch(Exception e) {JOptionPane.showMessageDialog(null,e);}
finally{
try {
if(prep != null) {
prep.close();
}
if(connection != null) {
connection.close();
}
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, e);
}
}
}
});

执行的公共无效操作(ActionEvent arg0({PreparedStatement prep=null;

int correct = 0;
try {
String query = "SELECT * FROM newuser WHERE username=? AND 
password=?";
connection = databaseConnection.dataConnector();
prep = connection.prepareStatement(query);
prep.setString(1, txtLoginUsername.getText());
prep.setString(2, txtLoginPassword.getPassword().toString());
ResultSet rs = prep.executeQuery();
while(rs.next()){
JOptionPane.showMessageDialog(null,rs.getString("username"));
JOptionPane.showMessageDialog(null,rs.getString("password"));
if(correct == 2) {isLoggedIn = true; 
JOptionPane.showMessageDialog(null,"You Are Logged In");}
else if(correct != 2) {JOptionPane.showMessageDialog(null, 
"Invalid Login Credentials");}
}
JOptionPane.showMessageDialog(null, rs.getString("username"));
}catch (SQLException e) {
JOptionPane.showMessageDialog(null,e);
}
finally {
try {
if(prep != null) {
prep.close();
}
if(connection != null) {
connection.close();
}
}catch(Exception e){
JOptionPane.showMessageDialog(null,e);}
}
}
});

我发现结果集没有找到任何与查询有关的内容,因此在关闭时,我只是稍微重写了一下查询,并重新确定了我保存密码的方式,因为它与密码字段的比较不同

最新更新