Mybatis四大核心对象及四大内置对象

一、MyBatis四大核心对象

MyBatis完成一次数据库操作需要经过的步骤,如下:

  • 1、加载配置文件
  • 2、获取SqlSessionFactoryBuiler对象
  • 3、通过SqlSessionFactoryBuiler和配置文件流来获取SqlSessionFactory对象
  • 4、利用SqlSessionFactory对象来打开一个SqlSession
  • 5、通过SqlSession来获得对应的Mapper对象
  • 6、通过Mapper对象调用对应接口来查询数据库

从这些步骤我们可以看到,MyBatic完成一次数据库操作主要有4大核心对象:

SqlSessionFactoryBuiler,SqlSessionFactory,SqlSession、Mapper

SqlSessionFactory

SqlSessionFactory是一个接口,默认的实现类,主要是用来生成SqlSession对象,而SqlSession对象是需要不断被创建的,所以SqlSessionFactory是全局都存在的,也没有必要重复创建,所以这是一个单例对象。

SqlSessionFactory看名字就可以很容易想到,用到的是工厂设计模式。

SqlSessionFactory只有两个实现类:DefaultSqlSessionFactory和SqlSessionManager。

Mapper

Mapper是一个接口,没有任何实现类。主要作用就是用来映射Sql语句的接口,映射器的接口实例从SqlSession对象中获取,所以说Mapper实例作用域是和SqlSession相同或者更小。
Mapper实例的作用范围最好是保持在方法范围,否则会难以管理。

Mapper接口的名称要和对应sql语句的xml文件同名,Mapper接口中定义的方法名称对应了xml文件中的语句id。

 

SqlSession

SqlSession是用来操作xml文件中我们写好的sql语句,每次操作数据库我们都需要一个SqlSession对象,SqlSession是用来和数据库中的事务进行对接的,所以SqlSession里面是包含了事务隔离级别等信息的。

SqlSession实例是线程不安全的,故最佳的请求范围是请求(request)或者方法(method)。

SqlSession也是一个接口,有两个实现类:DefaultSqlSession和SqlSessionManager。

SqlSessionFactoryBuiler

SqlSessionFactoryBuilder的唯一作用就是用来创建SqlSessionFactory,创建完成之后就不会用到它了,所以SqlSessionFactoryBuiler生命周期极短。

SqlSessionFactoryBuiler中提供了9个方法,返回的都是SqlSessionFactory对象。

 SqlSessionFactoryBuiler内使用到了建造者模式,如果想了解建造者模式的可以点击这里

 四大核心对象生命周期

SqlSessionFactoryBuiler只需要在创建SqlSessionFactory对象的时候使用,创建完成之后即可被丢弃。

SqlSessionFactory全局唯一,是一个单例对象,但是需要全局存在。

SqlSession一般对应了一个request,

Mapper一般控制在方法内。

二、MyBatis四大内置对象

  • ParameterHandler:处理SQL的参数对象
  • ResultSetHandler:处理SQL的返回结果集
  • StatementHandler:数据库的处理对象,用于执行SQL语句
  • Executor:MyBatis的执行器,用于执行增删改查操作
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值