基本使用
@Test
public void myTest(){
//解析hibernate.cfg.xml文件
Configuration cfg = new Configuration().configure();
//获得sessionFactory对象
SessionFactory sessionFactory = cfg.buildSessionFactory();
//获得session对象
Session session = sessionFactory.openSession();
//开启事务,并返回获取事务
Transaction tx = session.beginTransaction();
//执行增删改查
session.save(new Employee());
//提交事务
tx.commit();
//关闭session和工厂
session.close();
sessionFactory.close();
}
Configuration对象
- 解析hibernate的配置文件
- Configuration cfg= new Configuration().configure();是过时的方式,不过时的如下
//解析hibernate.cfg.xml文件
Configuration cfg= new Configuration();
ServiceRegistry sr = new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry();
cfg.buildSessionFactory(sr);
使用:Spring继承hibernate时候,不用到这个对象,但是sessionFactory的<bean>
内部就是用Configuration对象创建sessionFactory.
SessionFactory对象
- 是一个线程安全的对象.(可以作为全局变量)
- 用于生产session对象.
- Spring集成中hibernate,就是对SessionFactory的重新包装
Transaction对象
- 事务开启位置应该在service层.可以用Spring的事务AOP来解决.
- 事务的方法
//开启事务,并返回获取事务
Transaction tx = session.beginTransaction();
//获取当前事务
Transaction tx = session.getTransaction()
//事务提交
tx.commit();
//事务回滚
tx.rollback();