我正在運行一個簡單的Java登錄系統,使用MySQL。對象引用返回null Java
登錄工作正常,但我想創建一個已通過get方法登錄的用戶對象。但是當輸出這些方法時,它們返回空值:
「使用null和null登錄」。
我在做什麼錯?
- 主 -
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
User u = new User();
String username;
String password;
System.out.println("Enter Username: ");
username = input.next();
System.out.println("Enter Password: ");
password = input.next();
DatabaseController dc = new DatabaseController();
dc.login(username, password);
if(dc.a){
System.out.print("Logged in with "+ u.getUsername()+ " and " +u.getPassword());
}
else{
System.out.println("mismatch");
}
}
}
- 數據庫控制器---
public class DatabaseController {
private DatabaseConnection db;
ResultSet rs;
boolean a;
User u = null;
String name;
String pass;
public DatabaseController()
{
db = new DatabaseConnection();
}
public boolean login(String username, String password)
{
try
{
rs = db.doQuery("SELECT Firstname, Password FROM Users WHERE Firstname ='"+ username+"';");
while(rs.next())
{
name = rs.getString(1);
pass = rs.getString(2);
if(pass.equals(password)){
a = true;
u = new User();
u.setPassword(password);
u.setUsername(username);
}
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
return a;
}
}
---用戶---
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
嗨馬特,謝謝你以非常體面的方式向我解釋。是的,我想要的方法返回一個用戶實例,而不是布爾值。謝謝:) –