MyBatis - 01。基础

<节>

<李>

<强> SqlSessionFactoryBuilder (构造器):它会根据配置信息或者代码来生成SqlSessionFactory(工厂接口)

<李>

<强> SqlSessionFactory :依靠工厂来生成SqlSession (SqlSession会话:相当于JDBC中连接的对象)

<李>

<强> SqlSession :即可以发送SQL去执行并返回结果,也可以获取映射器的接口

<李>

<强> SQL映射器 :它是Mybatis新设计的组件,它是由一个Java接口和Xml文件(或注解)构成的,需要给出对应的SQL和映射规则,它负责发送SQL去执行,并返回结果。

<李>

<强> SqlSessionFactoryBuilder :
作用就是创建SqlSessionFactory,所以创建完成后作用即完成,将它回收,所以它的生命周期只存在于方法的局部。

<李>

<强> SqlSessionFactory :
每次应用程序需要访问数据库,我们就通过SqlSessionFactory来创建SqlSession(相当于连接对象),所以SqlSessionFactory应该在Mybatis应用的整个生命周期中,其职责就是创建SqlSession,为了节省数据库的资源,我们采用<强> 单例模式 强,一个数据库只对应一个SqlSessionFactory,管理好数据库资源的分配。

<李>

<强> SqlSessionFactory :
是一个会话,相当于JDBC中连接的对象,它的生命周期应该是请求数据库处理事务的过程中。它是一个线程不安全的对象,在涉及多线程编程的过程中,要特别当心,此外每次创建完成后都要及时关闭,长期不关闭会严重影响数据库的性能。我们往往在最后语句块中关闭它。它存活在一个应用的请求和操作,可以执行多条SQL语句,保证事务的一致性。

<李>

<强> SqlSessionFactory :
映射器是一个接口而没有任何的实现类,它的作用是发送SQL,然后返回我们需要的结果,或者执行SQL从而修改数据库中数据,因此它应该在一个SqlSession事务方法之内,是一个方法级别的东西,就如同JDBC中的一条SQL语句执行,最大范围和SqlSession相同。


MyBatis - 01。基础