一起学习Mybatis----基本构成/生命周期

版权声明:本文为博主原创文章,转载请说明出处。 https://blog.csdn.net/weixin_43549578/article/details/84874885

基本构成:

     SqlsessionFactoryBuilder(构造器):它会根据配置信息或者代码来生成SqlsessionFactory(工厂接口)。
     SqlsessionFactory:依靠工厂来生成 Sqlsession(会话)。
     Sqlsession:是一个既可以发送SQL去执行并返回结果,也可以获取 Mapper的接口。
     SQLMapper:它是 My Baits新设计的组件,它是由一个Java接口和XML文件(或注解)构成的,需要给出对应的SQL和映射规则。它负责发送SQL去执行,并返回结果。

   

生命周期:

    SqlsessionFactoryBuilder与SqlsessionFactory与Sqlsession与SQLMapper的生命周期。

  SqlsessionFactoryBuilder:

      SqlsessionFactoryBuilder是利用XML或者Java编码获得资源来构建 SqlsessionFactory的,通过它可以构建SqlsessionFactory它的作用就是一个构建器,一旦我们构建了SqlSessionFactory,它的作用就已经完结,失去了存在的意义,这时我们就应该毫不犹豫的废弃它,将它回收。所以它的生命周期只存在于方法的局部,它的作用就是生成SqlSessionFactory对象。

 SqlsessionFactory:

       SqlsessionFactory的作用是创建 Sqlsession,而 SqIsession就是一个会话,相当于JDBC中的 Connection对象。每次应用程序需要访问数据库,我们就要通过 SqlsessionFactory创建 Sqlsession,但是SqlsessionFactory应该在 My Batis应用的整个生命周期中。因而SqlsessionFactory的创建应该采用单例模式。避免过多的 Connection被消耗。

 Sqlsession:

      Sqlsession是一个会话,相当于JDBC的一个 Connection对象,它的生命周期应该是在请求数据库处理事务的过程中。它是一个线程不安全的对象,在涉及多线程的时候我们需要特别的当心,操作数据库需要注意其隔离级别,数据库锁等高级特性。此外,每次创建的 Sqlsession都必须及时关闭它,它长期存在就会使数据库连接池的活动资源减少,对系统性能的影响很大。

扫描二维码关注公众号,回复: 4672476 查看本文章

SQLMapper:

            Mapper是一个接口,而没有任何实现类,它的作用是发送SQL,然后返回我们需要的结果,或者执行SQL从而修改数据库的数据,因此它应该在一个 Sqlsession事务方法之内,是一个方法级别的东西。它就如同JDBC中的一条SQL语句的执行,它最大的范围和Sqlsession是相同的。尽管我们想一直保存着 Mapper,但是你会发现它很难控制,所以尽量在一个 Sqlsession事务的方法中使用它们,然后废弃掉。 

 

猜你喜欢

转载自blog.csdn.net/weixin_43549578/article/details/84874885