程序执行,但数据库没有插入数据

来源:百度知道 编辑:UC知道 时间:2024/06/06 20:39:59
使用的是MySql + hibernate,
提示:Hibernate:insert into ad_user(username, password, e_mail, phone, sex, admin) values (?, ?, ?, ?, ?, ?),如何向数据库插入数据

我使用的是:Session session = HibernateSessionFactory.getSession();
session.save(user);

action中的执行语句为:
public String execute() throws Exception {

User user = new User(username,password,e_mail,phone,sex);

boolean b = DAOFactory.getUserDAOIMP().queryByUsername(username);
if(!b){
boolean isReg = DAOFactory.getUserDAOIMP().isReg(user);
if(isReg){
return "success";
}else{
return "fail";
}
}else{
return "fail";
}
}
执行之后 chain.doFilter(request, response); 能否执行public boolean isReg(User user) {
boolean b = false ;

Session session = HibernateSessionFactory.getSession();
session.save(user);
int i=user.getId();
System.out.println(i);

你是在doFilter方法中的session.beginTransaction();和session.getTransaction().commit();之间执行Session session = HibernateSessionFactory.getSession();
session.save(user);这个代码吗?
Session session = HibernateSessionFactory.getSession();
session.save(user);这段代码必须要在事务的开启到提交之间运行

执行之后 chain.doFilter(request, response); 能否执行public boolean isReg(User user) {.....}?
什么意思,执行这个方法吗?如果执行这个方法掉就行?还是什么?

过滤器能行吗?你把方法内部的东西放到doFilter方法的session.beginTransaction();和session.getTransaction().commit();之间
在看看数据库。

事务是否开启??事务是否递交??commit了没有?

没commit的话的确是插入数据库了,但你是看不到的,那叫脏数据