深入浅出MyBatis技术原理与实战---第二章

MyBatis的基本构成

MyBatis的核心组件:

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

Java接口

映射XML文件.

MyBatis的构成

值得注意的是SQLSession和SQLMapper都可以发送SQL,一般建议使用SQLMapper发送SQL,这样代码更直观。
Configuration类(org.apache.ibatis.session.Configuration):存在于MyBatis的整个生命周期中,它保存着MyBatis的配置信息,可以通过解析XML文件保存到Configuration类对象中 。
SQLSessionFactoryBuilder读取Configuration

一个简易的XML包括:数据源(DataSource)、事务管理器(TransactionManager)、映射器(SQLManager)(提供SQL和SQL对POJO的映射规则定义)

各组件的生命周期:

  1. SQLSessionFactoryBuilder:SQLSessionFactoryBuilder的作用是构建SQLSessionFactory。它的作用就是一个构建器,一旦构建SQLSessionFactory,它的作用就此完结。所以它的生命周期只存在于方法内部 。
  2.SQLSessionFactory:它的作用是创建SQLSession,而SQLSession就是一个会话,相当于JDBC的Connection对象。每次应用程序访问数据库,我们都要通过SQLSessionFactory创建SQLSession,所以SQLSessionFactory的生命周期应该在MyBatis应用的整个生命周期。
  3.SQLSession:它相当于JDBC的Connection对象,它的生命周期应该是请求数据库处理事务的过程中。它是一个线程不安全的对象。
  4.Mapper:是一个接口,它没有任何实现类,它的作用是发送SQL,然后返回我们需要的结果,或者执行SQL修改数据库的数据,因此它应该在一个SQLSession事物之内,是一个方法级别的东西。它相当于JDBC的一条SQL语句的执行,它的最大范围和SQLSession是相同的。

构建一个MyBatis所需实例文件

构建简单MyBatis所需实例文件.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。