以前我们写的事务代码还不规范,下面我们来写一下事务的规范代码:
public class HibernateUtils{ private static Configuration cfg=null; private static SessionFactory sessionFactory=null; //静态代码块实现 static{ //加载核心配置文件 cfg=new Configuration(); cfg.configure(); sessionFactory = cfg.buildSessionFactory(); } //提供方法返回 sessionFactory public static SessionFactory getSessionFactory(){ return sessionFactory; } } //代码 public static void rooBackx(){ try { sessionFactory=HibernateUtils.getSessionFactory(); session=sessionFactory.openSession(); transaction=session.beginTransaction(); Book book=new Book("《改变》", 66); session.save(book); int a=10/0; transaction.commit(); } catch (Exception e) { System.out.println("事务在执行过程出错,请核对事务中操作是否异常!!"); transaction.rollback(); }finally { session.close(); } } //输出结果: Hibernate: insert into book (bookname, price) values (?, ?) 事务在执行过程出错,请核对事务中操作是否异常!! //然后我们就可以看到在数据库中并没有成功插入数据。因为在中途事务报错,异常被catch,就做了事务的回滚操作!!!