Hibernate如下数据库操作哪里错了

来源:百度知道 编辑:UC知道 时间:2024/09/24 14:25:54
public boolean deleteUserById(String id){
boolean flag = false;
int userid = Integer.parseInt(id);

Session session = this.getSession();
User user = (User)session.get(User.class, new Integer(userid));
if(user!=null){
session.delete(user);
System.out.println(user.getId()+","+user.getUsername()+","+user.getPassword());
System.out.println("删除成功!");
flag = true;
}
return flag;
}

用户的信息,还有“删除成功”都打印出来了。但是刷新数据库库,依然存在,没删掉。
怎么解决?

你没有创建事务,提交事务,所以你只是模型里删除了该对象,并没有数据库中删除的实际数据记录。

Transaction tx = null;
tx = session.beginTransaction(); //创建事务
session.delete(user);
tx.commit();//提交事务

如果严谨一点,还该捕获异常,如果数据操作失败,还应该数据回滚
try{
tx = session.beginTransaction(); //创建事务
session.delete(user);
tx.commit();//提交事务
}catch(RuntimeException e){
if (tx != null)
tx.rollback();//事务提交失败后回滚
}finally{
session.closeSession();//关闭session
}

事务 好好看文档 文档里说的很明白: 对于hibernate来说,事务是必须的

不懂Hibernate就好好看看文档!!!!!!!

照着1楼说的做吧!