我有一个功能,允许用户在用户类中登录系统。登录后 - 从数据库中检索他们的名字和姓氏,并将其作为私有变量存储在 User 类中。
private String username = "";
private String forename = "";
private String surname = "";
public User(){}
public boolean loginButtonAction(String user, String pass) {
try {
String statement = "SELECT PUNAME, PPASS, PFNAME, PSNAME FROM APP.PERSON WHERE PUNAME = ? AND PPASS = ?";
PreparedStatement ps = Main.getPreparedStatement(statement);
ps.setString(1, user);
ps.setString(2, pass);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
System.out.println("Logged in");
username = user;
forename = rs.getString("PFNAME");
surname = rs.getString("PSNAME");
return true;
}
rs.close();
ps.close();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
System.out.println("Incorrect login details");
return false;
}
我的 User 类中有公共方法来返回这些变量。
public String getUsername() {
return username;
}
public String getForename() {
return forename;
}
public String getSurname() {
return surname;
}
我在我的 Main 类和方法中创建一个新的 User 实例用于测试目的,并且在成功登录后简单地打印用户的名字和姓氏:
User u = new User();
u.loginButtonAction("johnny", "arsenal");
System.out.println("Forename: " + u.getForename());
用户名工作正常,但当然不是从数据库中提取的。结果如下:
run:
Logged in
Forename:
这是我在 APP.PERSON 中的数据库值:
我究竟做错了什么?