spring管理hibernate获取session方法
2016-07-14 09:52
302 查看
转载自:http://blog.csdn.net/a549324766/article/details/7332818
这个是hibernate与spring整合开发,让DAO继承了spring的HibernateDaoSupport,这样的确能够提高开发效率 ,但是不够灵活,而且使DAO层依赖于spring的api,增加了耦合。但是不考虑复用的话还可以。
下面一个一个的分析: this.getsession实际上是调用了父类中的方法获得session。使用spring管理hibernate的SessionFactory的时候,这个方法会从session池中拿出一session.这样做有可能有问题,就是超session池连接数的时候,spring无法自动的关闭session。 不推荐使用
this.getHibernateTemplate().getSessionFactory().getCurrentSession()从spring管理的sessionFactory中创建一个绑定线程的session.spring会根据该线程的执行情况来自动判断是关闭session还是延迟关闭。这样做可以避免手动的管理实务,同时一个线程最多开启和关闭一次session又可以提高程序的性能。 极力推荐使用这种方法
this.getHibernateTemplate().getSessionFactory().OpenSession。这种方法从spring管理的sessionFactory中创建一个session,此session不是线程绑定的。当执行完一个实务的时候自动关闭session.这种方法不用手动管理实务,但是同一个线程多次的开启和关闭session,浪费系统资源和影响执行效率,正常情况下还是不要用了。
顶0
踩
这个是hibernate与spring整合开发,让DAO继承了spring的HibernateDaoSupport,这样的确能够提高开发效率 ,但是不够灵活,而且使DAO层依赖于spring的api,增加了耦合。但是不考虑复用的话还可以。
下面一个一个的分析: this.getsession实际上是调用了父类中的方法获得session。使用spring管理hibernate的SessionFactory的时候,这个方法会从session池中拿出一session.这样做有可能有问题,就是超session池连接数的时候,spring无法自动的关闭session。 不推荐使用
this.getHibernateTemplate().getSessionFactory().getCurrentSession()从spring管理的sessionFactory中创建一个绑定线程的session.spring会根据该线程的执行情况来自动判断是关闭session还是延迟关闭。这样做可以避免手动的管理实务,同时一个线程最多开启和关闭一次session又可以提高程序的性能。 极力推荐使用这种方法
this.getHibernateTemplate().getSessionFactory().OpenSession。这种方法从spring管理的sessionFactory中创建一个session,此session不是线程绑定的。当执行完一个实务的时候自动关闭session.这种方法不用手动管理实务,但是同一个线程多次的开启和关闭session,浪费系统资源和影响执行效率,正常情况下还是不要用了。
顶0
踩
相关文章推荐
- DEBUG:MyEclipse使用Maven下载包失败时候的解决办法
- Java--数组转成list,list转数组
- springMVC工作原理
- java 加解密
- JNI层线程回调Java函数示例
- Java序列化与反序列化
- myeclipse2015 1.0破解
- 关于Java并发编程的总结和思考
- java对象引用级别
- (error/warning)java Unsafe等改变安全性的类怎样去掉eclipse错误提示
- 初次从eclipse转到intellij idea上的一些经验
- JAVA.NET.SOCKETEXCEPTION: TOO MANY OPEN FILES解决方法
- Java中两种停止线程的方法
- java正则表达式方法介绍
- 框架-------(二)Spring和SpringMVC框架(序列一初始原理概念)
- Java中的时间日期处理
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- java总结
- Failed to load javahl library
- Ubuntu安装MyEclipse