Mybatis核心对象的生命周期与封装
2016-09-24 16:53
323 查看
SqlSessionFactoryBuider对象
SqlSessionFactoryBuider对象可以被JVM虚拟机所实例化、使用或者销毁。一旦使用SqlSessionFactoryBuider创建SqlSessionFactory对象后,SqlSessionFactoryBuider类就不需要存在了,也就是说不需要保持此对象的状态,可以随意的任由JVM销毁。因此SqlSessionFactoryBuider对象的最佳适用范围是方法之内。
SqlSessionFactory对象
SqlSessionFactory对象有SqlSessionFactoryBuilder对象创建。一旦创建SqlSessionFactory类的实例,该实例在应用程序执行期间都存在,根本不需要每一次操作数据库时都重新创建他,所以应用它的最佳方式就是写一个单例模式,或使用Spirng框架来实现单例模式对SqlSessionFactory对象进行的管理。
SqlSession对象
SqlSession对象由SqlSessionFactory类创建,需要注意,每个线程都应该有自己的SqlSession实例。SqlSession的实例不能共享,它是线程不安全的,所以不能再Servlet中生命该对象的一个实例变量。因为Servlet是单例的,申明成实例会造成线程安全问题,也绝不能将SqlSession实例的对象放在一个类的静态字段甚至是实例字段中。还不可以将Sqlsession实例的对象放在任何类型的管理范围中,比如Servlet对象中的Httpsession会话。在接收到HTTP请求时,可以打开一个SqlSession对象操作数据库,然后返回响应,就可以关闭它。关闭SqlSession很重要,应该确保使用finally块来关闭它。
SqlSessionFactoryBuider对象可以被JVM虚拟机所实例化、使用或者销毁。一旦使用SqlSessionFactoryBuider创建SqlSessionFactory对象后,SqlSessionFactoryBuider类就不需要存在了,也就是说不需要保持此对象的状态,可以随意的任由JVM销毁。因此SqlSessionFactoryBuider对象的最佳适用范围是方法之内。
SqlSessionFactory对象
SqlSessionFactory对象有SqlSessionFactoryBuilder对象创建。一旦创建SqlSessionFactory类的实例,该实例在应用程序执行期间都存在,根本不需要每一次操作数据库时都重新创建他,所以应用它的最佳方式就是写一个单例模式,或使用Spirng框架来实现单例模式对SqlSessionFactory对象进行的管理。
SqlSession对象
SqlSession对象由SqlSessionFactory类创建,需要注意,每个线程都应该有自己的SqlSession实例。SqlSession的实例不能共享,它是线程不安全的,所以不能再Servlet中生命该对象的一个实例变量。因为Servlet是单例的,申明成实例会造成线程安全问题,也绝不能将SqlSession实例的对象放在一个类的静态字段甚至是实例字段中。还不可以将Sqlsession实例的对象放在任何类型的管理范围中,比如Servlet对象中的Httpsession会话。在接收到HTTP请求时,可以打开一个SqlSession对象操作数据库,然后返回响应,就可以关闭它。关闭SqlSession很重要,应该确保使用finally块来关闭它。
相关文章推荐
- MyBatis核心对象的生命周期与封装
- Mybatis核心对象及生命周期
- MyBatis中对象的范围和生命周期
- bean 和 Map 的相互转换(Mybatis 拦截器分页--将Object的参数对象封装到Pager 的params 中)
- Gradle 庖丁解牛(构建生命周期核心托付对象创建源代码浅析)
- SpringBoot学习(七)--封装Mybatis实现通用对象的增删改查
- MyBatis:复合条件查询——对象封装成Map类型
- CG学习(2)——CG的基本语法及核心函数的面向对象简单封装
- Mybatis核心类生命周期和管理
- mybatis核心组件生命周期管理
- SSM框架day02-MyBatis——029——复合条件查询-对象封装
- C++对象生命周期管理--通过引用计数指针对象来封装管理对象生命周期
- MyBatis原理第四篇——statementHandler对象(sqlSession内部核心实现,插件的基础)
- MyBatis之八:需要说明的几个java api的生命周期以及封装
- mybatis 关联查询之association定义关联对象封装规则
- Mybatis核心类生命周期和管理
- 封装多媒体定时器类和时间核心对象线程类
- 【Ajax 2】封装Ajax的核心对象:XMLHttpRequest对象
- MyBatis的核心组件和生命周期
- Mybatis的核心对象