SessionFactory sf = new Configuration().configure().buildSessionFactory();
实例化一个new Configuration()对象后通过configure()方法获取hibernate的配置文件hibernate.cfg.xml里的数据库配置信息后,通过buildSessionFactory()方法获取数据库连接池对象
改一下Hibernate的配置文件名:hibernate.xml
也可以这样写
SessionFactory sf = new Configuration(“hibernate.xml”).configure().buildSessionFactory();
Session session = sessionfactory.openSession();
session.heginTransaction();
session.save(t);
session.getTransaction().commit();
session.close();
上面的openSession()每一次都会重新打开一个Session,每一次都是新的,并且每打开
一个执行后都要手动关闭Session对象
Session session = sessionfactory.getCurrentSession();
session.heginTransaction();
session.save(t);
session.getTransaction().commit();
上面的getCurrentSession()的Session会从上下文找,如果有,用旧的,如果没有新建
一个Session
当你commit()后就会自动关闭Session对象。
一个事务说明二个操作全部都完成,要不二个都不完成通过
<property name="current_session_context_class">thread</property>
可以分为 Thread线程事务和JTA分布式事务
数据同时访问二个数据添加信息,
如果二个都添加成功了,说明执行成功
如果有一个添加失败,说明执行失败
这时就要使用JTA事务管理器来执行。
<property name="current_session_context_class">thread</property> 这个配置不可缺少
Hibernate中的三种状态:
http://www.secn.com.cn