1 HibernateUtil的工具的封装
Configuration:封装整个配置文件的读取过程
一次性的把配置文件的内容,全部加载到内存中
SessionFactory:SessionFactory是用于创建Session对象,重量级资源,Session占用很多的内存,功能多。
注意:在一个应用中,只创建一个SessionFactory对象。SessionFactory线程安全的对象
Session:完成数据库CRUD的,内部封装了Connection一一对应。
轻量级的资源,内存占用少,功能单一(CRUD)
注意:Session不允许被多线程(多用户,多请求)共享
HibernateUtil的封装
目的:封装创建Session的代码
2 SessionFactory.getCurrentSession()
注意:SessionFactory.openSession()与getCurrentSession()的区别
openSession()每次调用Hibernate都会创建新的Session
getCurrentSession()这个方法会把创建好的Session放置到ThreadLocal中,从而保证一个线程一个Session用于控制事务
getCurrentSession的注意事项:
1 必须要在HIbernate.cfg.xml中进行额外的配置
2 getCurrentSession获得的Session对象必须运行在事务之中(查询也要事务)
3 getCurrentSession获得的Session对象,在事务结束会自动关闭