【hibernate框架】核心开发接口-Configuration接口

Configuration接口:
a)AnnotationConfiguration
b)进行配置信息的管理
c)用来产生SessionFactory
d)可以在configure方法中指定hibernate配置文件
e)只需关注一个方法即:buildSessionFactory()




1.关于Configuration
什么叫做Configuration?
new 出来一个Configuration()方法,调它的configure()方法,
默认它会加载hibernate.cfg.xml文件,把配置信息读出来。
根据配置信息的数据库链接信息,生成出一个数据库连接池,就可以和数据库连接了。


如果hibernate.cfg.xml改名了(如改为hibernate.xml),可以用重载configure()方法指定文件名。
sessionFactory=new Configuration().configure("hibernate.xml").buildSessionFactory();


2.sessionFactory
sessionFactory里面维护的最重要的东西就是数据库连接池。
当它产生一个session的时候,会从里面拿一个连接(connection)给session。
也就是说,session中的conn就是sessionFactory通过配置文件里的配置信息,产生的数据库的连接池,从连接池中取出来的(session就等同于一个数据库的连接conn)


3.session
拿到session的方法:
方法1:
Session session=sessionFactory.openSession();
session.close();
方法2:
Session session=sessionFactory.getCurrentSession();
//不用session.close();


opensession与getCurrentSession区别:


opensession永远是新建一个session,而getCurrentSession从上下文里面拿一个已经存在的session(未提交),如果上下文不存在session就新建一个session。
验证:
Session session=sessionFactory.getCurrentSession();
Session session2=sessionFactory.getCurrentSession();
System.out.println(session==session2);
打印:true(没有提交之前,如果session提交过后再getCurrentSession就是新的了)

Session session=sessionFactory.openSession();
Session session2=sessionFactory.openSession();
System.out.println(session==session2);
打印false


什么是上下文(context)?
在hibernate.cfg.xml中,有以下的配置:
 <!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property> 
这就是指定拿到session的上下文。默认是从当前thread(线程)里面拿
不在这里指定的话就无法用getCurrentSession();方法
current_session_context_class可以设置以下的值:jpa,thread,managed,自己写的类来处理。
设置jpa是使用connection来管理。


注意getCurrentSession();与openSession();不要混用


转载请注明出处http://blog.csdn.net/acmman

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值