美文网首页
MyBatis的基本构成

MyBatis的基本构成

作者: 殷建卫 | 来源:发表于2018-10-20 16:59 被阅读0次

核心组件

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

用一张图表达它们之间的关联:

生命周期

SqlSessionFactoryBuilder

SqlSessionFactoryBuilder 是利用 XML 或者 Java 编码获得资源来构建 SqlSessionFactory 的,通过它可以构建多个 SessionFactory。它的作用就是一个构建器,一旦我们构建了 SqlSessionFactory,它的作用就已经完结了,失去了存在的意义。所以它的生命周期只存在于方法的内部。

SqlSessionFactory

SqlSessionFactory 的作用是创建 SqlSession,而 SqlSession 就是一个会话,相当于 JDBC 中的 Connection 对象。每次应用程序访问数据库,我们都需要 SqlSessionFactory 创建 SqlSession,所以 SqlSessionFactory 应该在 MyBatis 应用的整个生命周期中。而如果我们多次创建同一个数据库的 SqlSessionFactory,则每次创建 SqlSessionFactory 会打开更多的数据库连接资源,那么连接资源就很快会被耗尽。因此 SqlSessionFactory 的责任是唯一的,它的责任就是创建 SqlSession,所以应该采用单利模式。正确的做法是使得每一个数据库只对应一个 SqlSessionFactory,管理好数据库资源的分配,避免过多的 Connection 被消耗。

SqlSession

SqlSession 是一个会话,相当于 JDBC 的一个 Connection 对象,它的生命周期应该是在请求数据库处理事务的过程中。它是一个线程不安全的对象,在涉及多线程的时候我们需要特别小心,操作数据库需要注意其隔离级别,数据库锁等高级特效。此外,每次创建的 SqlSession 都必须及时关闭它,它的长期存在会使数据库连接池的活动资源减少,对系统性能的影响太大。我们往往通过 finally 语句保证我们正确的关闭 SQLSession。它存活于一个应用的请求和操作,可以执行多条 SQL,保证事务的一致性。

Mapper

Mapper 是一个接口,而没有具体的实现类,它的作用是发送 SQL,然后返回我们需要的结果,或者执行 SQL 从而修改数据库的数据,因此它应该在一个 SqlSession 事务方法之内,是一个方法级别的东西。

用一张图描述 MyBatis 组件的生命周期:

相关文章

  • Mybatis基本构成

    Mybatis的核心组件 SqlSessionFactoryBuilder(构造器):会根据配置信息或者代码来生成...

  • MyBatis的基本构成

    核心组件 SqlSessionFactoryBuilder(构造器):它会根据配置信息或者代码来生成 SqlSes...

  • 自学Mybatis系列(1)——MyBatis的基本构成

    JAVA持久层框架——MyBatis学习 写在前面:十分感谢《深入浅出Mybatis技术原理与实战》这本书,大多数...

  • Mybatis源码理解(1)

    Mybatis基本构成 SqlSessionFactoryBuilder(构造器):它会根据配置信息或者java代...

  • Mybatis简单的案例(1)2018-08-16

    mybatis的基本构成 1、SqlSessionFactoryBuilder(构造器):根据配置信息或代码来生成...

  • 2.MyBatis基础概念及用法

    1.MyBatis的基本构成 SqlSessionFactoryBuilder(构造器) 它会根据配置信息或者代码...

  • Mybatis源码解读

    Mybatis入门 Mybatis构成 SqlSessionFactoryBuilder(构造器):根据配置信息或...

  • Mybatis快速入门

    Mybatis 学习内容 Mybatis框架的简单入门 Mybatis框架基本的使用 Mybatis框架的深入和多...

  • Mybatis构成组件

    基本构成 SqlSessionFactoryBuider(构造器):根据配置信息或者代码生成SqlSeesionF...

  • Mybatis学习记录

    目录 mybatis的基本概念 mybatis如何构建和执行的 mybatis的缓存 mybatis的插件系统 m...

网友评论

      本文标题:MyBatis的基本构成

      本文链接:https://www.haomeiwen.com/subject/iwemzftx.html