配置如下:MyEclipse7.1 jdk1.6 tomcat5.5 struts 1.2 spring2.5 hibernate3.2 myaql5.5
我在studentDao写的studentRegister函数如下:public boolean studentRegister(Student student) {
ht = this.getHibernateTemplate();
boolean bl = false;
try
{
beginTransaction();//我自己定义的开始一个seeion的方法
ht.save(student);
commitTransaction();//我自己定义的一个提交事件的方法
bl = true;
}catch(Exception ex)
{
rollbackTransaction();//同上,回滚操作
ex.printStackTrace();
}finally{
closeSession();//同上,关闭session
}
return bl;
}如果我不用我注释了的地方的语句,我的数据就插入不进数据库,而仅仅只在hibernate中。当然没有报错。我重数据库中得到数据是没有问题的。这个是为什么呀?我看郭克华老师的例子里面他也没有用上面注释的语句,但他的数据能够插入进数据库.求高手正解。小弟先谢谢了!
我在studentDao写的studentRegister函数如下:public boolean studentRegister(Student student) {
ht = this.getHibernateTemplate();
boolean bl = false;
try
{
beginTransaction();//我自己定义的开始一个seeion的方法
ht.save(student);
commitTransaction();//我自己定义的一个提交事件的方法
bl = true;
}catch(Exception ex)
{
rollbackTransaction();//同上,回滚操作
ex.printStackTrace();
}finally{
closeSession();//同上,关闭session
}
return bl;
}如果我不用我注释了的地方的语句,我的数据就插入不进数据库,而仅仅只在hibernate中。当然没有报错。我重数据库中得到数据是没有问题的。这个是为什么呀?我看郭克华老师的例子里面他也没有用上面注释的语句,但他的数据能够插入进数据库.求高手正解。小弟先谢谢了!
这个方法会自动开启事务,关闭事务,使用它可以减少代码,下面的属于多余
beginTransaction();//我自己定义的开始一个seeion的方法
commitTransaction();//我自己定义的一个提交事件的方法
直接
try{
ht.save(student);
}catch{
}
然后在hibernate.cfg.xml中添加
<property name="hibernate.connection.autocommit">true</property>
我的博客里有getHibernateTemplate()与sessions的区别
第二:就是配置spring事务管理器
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>