关于Hibernate的Session和SessionFactory 书上说,SessionFactory是非轻量级的,是线程安全的.Session是轻量级的,线程安全的.在网上能看到一个辅助类HibernateUtil.java,不太明白.请大家指点,我应该如何利用此类. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 HibernateUtil这个类就是帮助你建一个SessionFactory,管理Session的要用session的时候,从这个类里面拿就是了 好像Session不是线程安全的吧。HibernateUtil.java其实就是把SessionFactory,Configuration,Session啊封装起来,你想用的时候就直接HibernateUtil.getSession(),想不用的时候就直接HibernateUtil.closeSession(yourSession)。类比连接池ConnectionPool. Session是单例模式,所有单例模式都不是线程安全的(一般名字后面加一个Factory字样,叫工厂模式)Hibernate只在SessionFactory里使用非安全的单例模式,因为要统一管理配置等重要信息,而Session是SessionFactory创建的,不基于单例模式所以Session是完全安全的。推荐你学一下Spring的AOP,依赖注入,这种模式比工厂模式优势更多。 java synchronized 程序 初学java,对于数据类型的转换有点疑惑,求指点 文件目录树及相应文件的创建疑问 从一个文本文件中提取需要的内容并写到一个新的文本文件中, 代码怎么写? 多线程操作 socket中的DataInputStream如何复制呢? 线程类Thread的问题: 有关DecimalFormat格式化字符串的问题??? 为什么不能向XML文件中的空结点中添加子结点? 如何用 setCursor 设置自定义鼠标指针 为什么我这样还无法载入需要的类呢? 在实际开发项目中 ,位运算主要处理什么问题?
要用session的时候,从这个类里面拿就是了
HibernateUtil.java其实就是把SessionFactory,Configuration,Session啊封装起来,你想用的时候就直接HibernateUtil.getSession(),想不用的时候就直接HibernateUtil.closeSession(yourSession)。
类比连接池ConnectionPool.
Hibernate只在SessionFactory里使用非安全的单例模式,因为要统一管理配置等重要信息,而Session是SessionFactory创建的,不基于单例模式所以Session是完全安全的。推荐你学一下Spring的AOP,依赖注入,这种模式比工厂模式优势更多。