UserDao中用 executeUpdate更新数据库失败

页面没有报错,找了好久。。。

 

 
  
  1. public boolean updateUser(String username,String oldpwd,String password,String phone,String send_address) {
  2. String hql="update User set password=:password,phone=:phone,send_address=:send_address where username=:username and password=:opwd "
  3.      Query query=getSession().createQuery(hql); 
  4.     query.setParameter("username", username); 
  5.     query.setParameter("password", password); 
  6.     query.setParameter("phone", phone); 
  7.     query.setParameter("send_address", send_address); 
  8.     query.setParameter("opwd", oldpwd); 
  9.     int row=query.executeUpdate(); 
  10.     System.out.println(row); 
  11.     System.out.println("+++++++++++++++++++++++++++++++++++++++++"); 
  12.     return row>0 ? true :false;

最后问了老师,老师就问了三个问题

1.你检查一下web.xml的open session in view 有没加上

有哦

2.那检查一下 username password phone 等的值

 

 
  
  1. System.out.println(username); 
  2. System.out.println(oldpwd); 
  3. System.out.println(password); 
  4.  
  5.  
  6. System.out.println(phone); 
  7. System.out.println(send_address); 

也有哦!

3.是不是你的数据库的 username password 没有这样一条记录啊?还是你输入的东西前面有空格

那要怎么样除去空格

trim

username=username.trim()

然后就更新成功!

老师好厉害,三句点中要害!!!