hibernate中sessionfactory的生命周期是怎样的

 我来答
百度网友5e15b90
2017-10-23 · TA获得超过1031个赞
知道小有建树答主
回答量:806
采纳率:91%
帮助的人:833万
展开全部
1. 关于SessionFactory

1.) SessionFactory是一个与连接池的类差不多的东西,在这里存着多个Session—与数据库的会话(相当于connection)
2.) 因为连接数据库的配置信息和映射信息都在SessionFactory,比较占内存,所以在hibernate中SessionFactory只有一个
3.) SessionFactory是线程安全的

2. 关于Session类
1.) session.getTransaction().commit();之后, 就会被销毁
2.) session里面除了有connection之外,还有...
3.) session的作用就是对数据库进行增删改查
4.) session生命周期很短,session.close() 一关闭,该对象就没有了
5.) session对象是线程不安全的

3. getCurrentSession和getSession的区别

1.) sessionFactory.openSession(); 打一个新的session(Connection)即一个与为数据库的会话
2.) 必须要配置:current_session_context_class=thread

[java] view plain copy
/**
* 此类负责创建SessionFactory,此类,一个应用程序只有一个,且是线程安全的
* SessionFactory相当于数据库连接池, Session相当于connection
*/
public class HibernateUtils {
private static SessionFactory sessionFactory; //声明会话工厂(session(用完后即死亡),connection)
static{
try{
Configuration conf = new Configuration();//声明读取配置文件的类,此类在实例化时默认即读取
// 默认会先去读取classpath下的hibernate.properties,然后读取hibernate.cfg.xml文件,后者会覆盖前者
conf.configure();
sessionFactory = conf.buildSessionFactory(); //创建会话工厂
}catch(Exception e){
e.printStackTrace();
}
}
public static SessionFactory getSessionFactory(){ //返回会话的工厂
return sessionFactory;
}
public static Session getSession(){ //从工厂打开一个新的Session并返回
return sessionFactory.openSession();
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式