MyBatis3 SqlSessionFactory
SqlSessionFactoryBuilder:
用于建立SqlSessionFactory的工具类,在创建 SqlSessionFactory以后无需再让它存在于应用程序中,文档上说它的生命周期最好在局部方法内,所以在代码中看到
//根据资源文件内容建立session工厂
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);
没用引用指向 SqlSessionFactoryBuilder,会被gc回收。
SqlSessionFactory:
一旦建立,SqlSessionFactory就应该存在于整个应用程序生命周期,因为根据资源文件建立SqlSessionFactory对象 需要很大的开销,所以保留在整个应用的生命周期中,最佳实践中推荐使用spring等依赖注入的框架从而管理SqlSessionFactory的单例生 命周期。
SqlSession:
每一个线程都应该有自己的SqlSession对象,SqlSession对象不是线程安全的所以不应该被共享,如果使用web框架,应该将 SqlSession的生命周期看作HTTP Request的生命周期,在返回HTTP Response的时候关闭SqlSession
用于建立SqlSessionFactory的工具类,在创建 SqlSessionFactory以后无需再让它存在于应用程序中,文档上说它的生命周期最好在局部方法内,所以在代码中看到
//根据资源文件内容建立session工厂
SqlSessionFactory sqlMapper = new SqlSessionFactoryBuilder().build(reader);
没用引用指向 SqlSessionFactoryBuilder,会被gc回收。
SqlSessionFactory:
一旦建立,SqlSessionFactory就应该存在于整个应用程序生命周期,因为根据资源文件建立SqlSessionFactory对象 需要很大的开销,所以保留在整个应用的生命周期中,最佳实践中推荐使用spring等依赖注入的框架从而管理SqlSessionFactory的单例生 命周期。
SqlSession:
每一个线程都应该有自己的SqlSession对象,SqlSession对象不是线程安全的所以不应该被共享,如果使用web框架,应该将 SqlSession的生命周期看作HTTP Request的生命周期,在返回HTTP Response的时候关闭SqlSession
by archie
posted on 2011-03-02 14:33 archie2010 阅读(1586) 评论(0) 编辑 收藏 举报