因此,多亏了下面的建议,我将使用语句的第一种方法更改为使用 Prepared Statements ,我还将 verifyUser 方法与 ConnectDB 分开,将其放入一个新的用户类(在我的作业中要求)。
现在我不再使用任何 NPE,而是另一个 NPE,它是 MySQL JDBC 驱动程序的 Class Not Found Exception。
用户类的代码如下:
public class Users {
private String login;
private String password;
public Users(String login, String password) {
this.login = login;
this.password = password;
}
public String getUsername() {
return login;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public void setUsername(String login) {
this.login = login;
}
public boolean verifyUser(String login, String password) throws SQLException {
ConnectDB cdb = new ConnectDB();
Connection cn = DriverManager.getConnection(cdb.url, cdb.login, cdb.password);
PreparedStatement ps = cn.prepareStatement("SELECT password FROM users WHERE login LIKE ? ");
ps.setString(1,username);
ResultSet rs=ps.executeQuery();
rs.next();
if (rs.getString(2).equals(password)) {
System.out.println("TEST");
return true;
}
else
return false;
}
}
这是我的 ConnectDB 类:
public class ConnectDB {
String url = "jdbc:mysql://localhost:3306/entreprise";
String login = "root";
String password = "kamoulox369";
Connection connection = null;
Statement st = null;
ResultSet rs = null;
PreparedStatement ps = null;
public void getConnection() {
try {
Class.forName("com.example.mysql.jdbc.Driver");
connection = DriverManager.getConnection(url, login, password);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
}
}
慕的地6264312
相关分类