由于某些原因,addUser()
,updateUser()
方法无效。
有人可以看看代码并找出我犯错误的地方吗?
public void addUser(User user) {
try {
PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO users(UserId, FirstName, LastName, JobTitle, Email, UserName, Password) values (?,?,?,?,?,?,?)");
// Parameters start with 1
preparedStatement.setInt(1,user.getUserId());
preparedStatement.setString(2, user.getFirstName());
preparedStatement.setString(3, user.getLastName());
preparedStatement.setString(4, user.getJobTitle());
preparedStatement.setString(5, user.getEmail());
preparedStatement.setString(6, user.getUserName());
preparedStatement.setString(7, user.getPassword());
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void updateUser(User user) {
try {
PreparedStatement preparedStatement = connection.prepareStatement("update users set Email=?, Password=? where Username=?");
preparedStatement.setString(1, user.getEmail());
preparedStatement.setString(2, user.getUserName());
preparedStatement.setString(3, user.getPassword());
preparedStatement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
请注意,我在java方面没有太多经验。 没有打印错误,这就是为什么我无法分辨出错误的原因。
答案 0 :(得分:1)
在updateUser()中,参数的顺序是错误的。从您的sql语句,它应该是电子邮件,密码,然后是用户名。
preparedStatement.setString(1, user.getEmail());
preparedStatement.setString(2, user.getPassword());
preparedStatement.setString(3, user.getUserName());
另外,我建议你添加一个"最后"阻止关闭语句和结果集。