`
letitbe
  • 浏览: 235306 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Session,SessionFactory,Connetion等

阅读更多
1,有时连续调多个Dao方法时会报连接关闭,原因往往是关闭session不当。
  不要用session.close(),这样会使同一个线程的下一个Dao方法里执行
  HibernateSessionFactory.getSession()时取到的是已经被关闭的session,当然会报错了。

2,Connection conn =session.connection();
  这个conn一定要执行conn.close()吗?

3,
http://hi.baidu.com/sodarfish/blog/item/b996a3df9224d217622798ec.html
在通常的情况下使用DriverManager.getConnection()得到的是一个Connection的实例,当你调用它的close()方 法时会关闭StateMent和ResultSet。但是我们在使用连接池的过程中,通过连接池得到Connection,当我们调用 Connection的close()时,Connection并不是被关闭了,而是回到了连接池中,它以后还会被其他的代码取出来使用,如果我们没有关 闭stmt和rs的话,只会使系统中的stmt和rs越来越多。所以在使用连接池后,调用conn.close()前应先将rs和stmt关闭。

至于为什么调用close()之后不是直接关闭此连接,而是返回给连接池,这是因为dbcp使用委派模型来实现Connection接口了。

http://nymph.blogdriver.com/nymph/180989.html#comment
http://www.iteye.com/topic/9317?page=1
http://www.iteye.com/topic/48048?page=1
 
分享到:
评论

相关推荐

    新Hibernate SessionFactory().getCurrentSession()猫腻

    总结来说,这篇博客文章可能探讨了在使用Hibernate时,通过SessionFactory().getCurrentSession()获取Session的技巧和注意事项,包括如何正确配置Spring事务管理、理解线程绑定的Session机制,以及如何利用源码和...

    HibernateSessionFactory 代码

    查询数据可以使用`Session`的`get()`、`load()`、`queryOver()`(HQL)或`createCriteria()`(Criteria API)等方法。以下是一个HQL查询示例: ```java Session session = sessionFactory.openSession(); ...

    使用 HibernateSessionFactory 类

    - **缓存管理**: `SessionFactory`支持一级缓存(Session级别的缓存)和二级缓存(SessionFactory级别的全局缓存)。二级缓存可以通过插件如Ehcache实现,提高性能。 - **事务处理**: Hibernate提供了基于JTA或JDBC...

    Hibernate-nosession

    但是,为了实现nosession模式,我们可以使用SessionFactory的createSQLQuery()方法来执行原生的SQL查询,这样就无需打开和关闭Session。以下是一个简单的示例: ```java SessionFactory sessionFactory = ...

    HibernateSessionFactory

    用于获得Session会话及关闭Session会话

    SessionFactory.getCurrentSession与openSession的区别

    - 用户需要自己管理 `Session` 的生命周期,包括打开、关闭、开始和提交事务等。 - 在非容器环境中,或者在Java SE应用中,通常使用 `openSession()`。 总结来说,`SessionFactory.getCurrentSession()` 更适合在...

    spring配置sessionFactory(spring3.2.3+hibernate4.2.2)

    SessionFactory是Hibernate的核心组件,它负责创建Session对象,而Session则是与数据库交互的接口。 首先,我们需要在项目中添加Spring和Hibernate的依赖。Spring的jar包通常包括spring-context、spring-beans、...

    多数据源---SessionFactory

    SessionFactory是Hibernate中的一个单例对象,它负责创建Session实例,而Session则是与数据库交互的前线对象。SessionFactory通过配置文件或编程方式获取数据库连接信息,并对其进行预编译,从而提高数据库操作效率...

    hibernate和session学习

    在上述代码中,我们首先通过`SessionFactory`获取`Session`实例,然后开启事务,接着创建一个新的`User`对象并保存到数据库,最后提交事务并关闭`Session`。 在实际应用中,我们通常会将`SessionFactory`和`Session...

    针对没有sessionFactory问题的情况之一

    针对sessionFactory没有出现的可能原因;

    Hibernate Session释放模式

    通过合理配置,SessionFactory可以在多线程环境下高效地管理Session,如使用一级缓存(Identity Map)和二级缓存(如 Ehcache),提高查询效率。 6. **JTA(Java Transaction API)和JPA(Java Persistence API)...

    JAVA的hibernate手动获取session的方法

    在Java应用中,我们需要先初始化SessionFactory,然后通过SessionFactory来创建Session实例。 以下是如何手动获取Session的基本步骤: 1. **配置Hibernate**:在项目的资源目录下创建`hibernate.cfg.xml`配置文件...

    HibernateSession , Transaction 研究

    `SessionFactory`是`Session`的工厂,负责创建和配置`Session`。`SessionFactory`一般在应用启动时创建并缓存,避免频繁创建和关闭带来的性能开销。 在开发中,使用Hibernate的`Session`和`Transaction`能够有效...

    重写hibernate的session简单增删改查

    在应用中,用自定义SessionFactory创建的Session替换原生的Session,这样就可以在增删改查操作中使用自定义功能。 三、文件列表分析 "重写Session增删改查"这个压缩包可能包含了以下内容: - 源码示例:展示如何...

    一个模拟Spring将SessionFactory注入到HibernateTemplate的小例子

    2. HibernateTemplate:这是Spring提供的一个辅助类,它封装了SessionFactory的一些常用操作,如保存、更新、删除和查询等。使用HibernateTemplate可以简化代码,避免直接与Session对象打交道,减少出错的可能性。 ...

    HibernateSessionFactory.java

    HibernateSessionFactory.java

Global site tag (gtag.js) - Google Analytics