MyBatis 生命周期
一.SqlSessionFactoryBuilder
SqlSessionFactoryBuilder是利用XML或是Java编码获得资源来构建SqlSessionFactory的,通过他可以构建多个SessionFactory.他的作用就是构建器,一旦我们构建了SqlSessionFactory,他的作用就已经完结,就没有什么意义了我们就可以去回收了他,所以他的生命周期就是存在于方法的局部,他的作用就是就用来我们产生SqlSessionFactory;
二.SqlSessionFactory
SqlSessionFactory他的作用就是创建SqlSession,而SqlSession就是一个会话,相当于JDBC当中的Connection对象.每次访问数据库我们就是通过SqlSessionFactory来创建一个SqlSession,所以SqlSessionFactory应该是在整个应用的生命周期的,而如果我们多次创建同一个SqlSessionFactory,则每次创建SqlSessionFactory会打开更多的数据库连接资源,那么连接资源很快就会被耗尽.因此这里我们的SqlSessionFactory的责任是唯一的,他的责任就是创建SqlSession,所以在这里我们采用单例模式.所以如果是有多个数据库,那么最好的作法就是一个数据库只对应一个SqlSessionFactory;
三.SqlSession
SqlSession是一个会话,相当于JDBC当中的Connection对象.他的生命周期是请求数据库处理事务过程中.他是一个线程不安全的对象,需要特别的当心,操作数据库需要注意他其隔离级别,数据库锁等高级特性.此外在每次创建SqlSession都必须及时关闭,他如果长期存在就会使得数据库连接池活动资源减少,对系统的性能影响很大,所以在我们使用时需要添加一个finally{}并且在这里判断并关闭.他存活于一个应用请求和操作,可以执行多条SQL,保证事务的一至性.
四.Mapper
Mapper是一个接口,而没有任何的实现类,他的作用就是发送SQL,然后返回我们需要的结果,或者是执行SQL从而修改数据库数据,因此他应该是在一个SqlSession事务方法之中,是一个方法级别的东西.他就像JDBC当上的一条SQL语句的执行,他的最大范围和SqlSession是相同的,
MyBatis 生命周期的更多相关文章
- Java 笔记——MyBatis 生命周期
1.MyBatis 的生命周期 MyBatis的核心组件分为4个部分. SqlSessionFactoryBuilder (构造器): 它会根据配置或者代码来生成SqISessionFactory,采 ...
- MyBatis中主要类的生命周期和应用范围
转自:http://ccchhhlll1988-163-com.iteye.com/blog/1420026 MyBatis中常用的类就要数SqlSessionFactoryBuilder.SqlSe ...
- MyBatis之八:需要说明的几个java api的生命周期以及封装
学习mybatis不得不了解SqlSessionFactoryBuilder.SqlSessionFactory.SqlSession.这里主要是讲解它们的生命周期以及一般最佳实践. 一般来说对象的生 ...
- MyBatis源码解析【3】生命周期
经过之前的项目构建,我们已经得到了一个可以使用的最基本的项目. 其中已经包括整个执行的过程.但是我们在完成之后也遇到了很多问题,我们就要慢慢的一步步解决这些问题. 讲道理,今天我们其实应该直接开始看源 ...
- MyBatis 作用域(Scope)和生命周期
SqlSessionFactoryBuilder SqlSessionFactoryBuilder的作用是创建SqlSessionFactory.一旦创建了SqlSessionFactory,就不再需 ...
- MyBatis的生命周期
MyBatis的生命周期 所谓的生命周期就是第一个对象应该存活的时间,比如一些对象一次用完后就要关闭,使它们被Java虚拟机(JVM)销毁,以避免继续占用资源,所以我们会根据每一个组件的作用去确定其生 ...
- MyBatis 作用域和生命周期
理解到目前为止所讨论的类的作用域和生命周期是非常重要的.如果使用不当可导致严重的并发性问题. SqlSessionFactoryBuilder 这个类可以在任何时候被实例化.使用和销毁.一旦您创造了 ...
- 【Mybatis】Mybatis元素生命周期
一.SqlSessionFactoryBuilder SqlSessionFactoryBuilder是利用XML或者Java编码获得资源来构建SqlSessionFactory的,通过它可以构建多个 ...
- MyBatis的适用场景和生命周期
MyBatis使用场景 对比Hibernate和MyBatis是我们常见的话题,Hibernate作为常用的ORM框架,它使用起来简单易懂,对于SQL语言的封装,让对于SQL并不是很熟练的程序员也可以 ...
随机推荐
- IMPALA部署和架构(一)
IMPALA部署和架构(一) 一,概要 因公司业务需求,需要一个查询引擎满足快速查询TB级别的数据,所以我们找到了presto和impala,presto在前面讲过今天只说impala,impala ...
- 运维wiki
意识 1.责任心 要有 owner 意识.运维是线上产品的首要负责人,出现故障都默认是运维的故障,要推动改进. 2.细心 要有敏感的风险意识,稳定和安全是运维的最高责任 3.上进心 要善于学习,不断反 ...
- delphi 多线程之System.TMonitor
三天不写代码就手生! 把测试代码记录下来. unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, S ...
- 工控随笔_17_西门子_WinCC的VBS脚本_06_过程和函数
和其他语言一样,vbs提供了过程和函数机制,通过函数和过程可以优化代码结构和实现代码复用, 减少代码的编写量. 一.代码 具体不再多说,看实例代码. ' vbs的函数和过程 '1.过程式编程是一大编程 ...
- apache+php+mysql安装与使用
偷个懒,用的系统自带的apache和php apache安装与使用 Mac自带apache默认路径 主程序 /usr/sbin/httpd 模块 /usr/libexec/apache2 配置 /et ...
- Windows自定义运行命令
1 打开注册表regedit 2 找到:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths 3 新增项,自己运 ...
- problem: 记一次聊天框的表情包弹框不显示的找问题过程
左边是列表,包含了群和成员,右侧是聊天窗口.点击群列表,右侧显示群聊窗口,点击学员,右侧显示私聊窗口. 群聊窗口和私聊窗口是不同的组件,但是窗口中的子组件,例如窗口的头部.中间内容部分.输入框都是复用 ...
- snmp服务中snmpwalk命令常用方法总结
在日常监控中,经常会用到snmp服务,而snmpwalk命令则是测试系统各种信息最有效的方法,命令格式: snmpwalk -c SNMP读密码 -v 1或2(代表SNMP版本) 交换机或路由器IP ...
- Unity Shader Graph(三)Phase In and Out
软件环境 Unity 2018.1.6f1 Lightweight Render Pipeline 1.1.11-preview Phase In and Out效果预览 角色沿Y轴逐渐出现和消失 S ...
- 游戏中的沉浸(Flow in Games)
转自:https://www.jianshu.com/p/4c52067f6594 作者:陈星汉(JenovaChen) 本论文的主旨在于提供一种独特的方法论,用以指导游戏设计中的以玩家为中心的动态难 ...