dao 的插入和更新方法不起作用
Posted
技术标签:
【中文标题】dao 的插入和更新方法不起作用【英文标题】:Insert and update methods of dao are not working 【发布时间】:2015-07-16 23:01:53 【问题描述】:由于某种原因,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 方面没有太多经验。 没有打印错误,这就是为什么我不知道哪里出了问题。
【问题讨论】:
【参考方案1】:在你的 updateUser() 中,参数的顺序是错误的。从您的 sql 语句中,它应该是电子邮件、密码,然后是用户名。
preparedStatement.setString(1, user.getEmail());
preparedStatement.setString(2, user.getPassword());
preparedStatement.setString(3, user.getUserName());
另外,我建议您添加一个“finally”块来关闭语句和结果集。
【讨论】:
以上是关于dao 的插入和更新方法不起作用的主要内容,如果未能解决你的问题,请参考以下文章