出于安全原因,最近刚刚将我在 SQL 中的语句更改为准备好的语句,这就是我想出的..
不幸的是,它出现了一个找不到错误
"SELECT * FROM owner WHERE username = ? AND" + "password = ?;";
整个错误:
找不到符号:符号:方法 prepareStatement(java.lang.String) 位置:HolidayExchange.DBAccess 类型的变量 dbAccess
我意识到当它应该是一个准备好的语句时它正在寻找一个字符串,但这就是我在示例等中总是看到它的方式。
我可能在做一些愚蠢的事情,但解决这个问题的任何帮助都会非常有帮助!
整个方法:
DBAccess dbAccess = 新的 DBAccess();
String sql = "SELECT * FROM owner WHERE username = '?' AND"+
" password = '?'";
PreparedStatement ps = dbAccess.prepareStatement(sql);
ps.setString(1,u);
ps.setString(2,p);
ResultSet rs = dbAccess.executeQuery2(ps);
User user = new User();
while (rs.next()){
user.setFirstname(rs.getString("firstname"));
user.setSurname(rs.getString("surname"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
}
rs.close();
dbAccess.close();
if(user.getUsername().length()==0){
return null;
}else{
return user;
}
} catch (Exception e) {
return null;
}
}`