Mybatis的生命周期

本文主要是针对Mybatis中核心组件,包括SqlSessionFactoryBuilder(构造器),
SqlSessionFactory,SqlSession,SqlMapper的生命周期。本文的资料来源是
深入浅出MyBatis技术原理与实战的第二章的第三小节。
需要本书的读者可以通过以下方式获得:

百度云链接 提取码:mq2v

SqlSessionFactoryBuilder

SqlSessionFactoryBuilder,该类是根据配置信息或者代码来创建SqlSessionFactory,可以创建多个SqlSessionFactory,可想而知,该类在创建SqlSessionFactory之后就完成任务了,因此SqlSessionFactoryBuilder所在的方法体内运行完后则等待回收。

SqlSessionFactory

SqlSessionFactory是SqlSessionFactoryBuilder根据配置信息创建的,其作用相当于JDBC中的Connection对象,对象中存储了连接数据库的数据源(dataSource),数据库驱动等信息,它的作用是创建SqlSession。
我们在访问数据库时是通过SqlSessionFactory创建的SqlSession来访问的,所以SqlSessionFactory的生命周期应该是Mybatis应用的整个生命周期。
由于SqlSessionFactory的职责只是创建SqlSession,因此我们选择使用单例模式来创建它,创建多个只会占有系统资源。

SqlSession

对于SqlSession来说,其作用相当于JDBC的一次链接,SqlSession的生命周期是当发起查询到返回结果后。
在完成数据库操作后我们应该关闭链接,若不关闭,数据库链接池会存在无用链接而使得资源减少。因此我们在finally中关闭链接。

SqlMapper

SqlMapper由同名的接口类和XML文件组成,XML文件的mapper元素的属性namespace的值与接口类的全限定名相同,同时子元素的属性值id与接口类的方法名相同,完成映射。对于SqlMapper来说,由于一个SqlSession对应一个SqlMapper,因此其生命周期与SqlSession相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值