MyBatis核心组件之间的关系
MyBatis前身是iBatis,作为javaWeb开发中常用框架的核心内容,了解其内部组成及运行机制,对于我们理解MyBatis和进行Web开发有极大的帮助。相对于JavaWeb开发另一个常用的Hibernate框架,MyBatis作为一个半自动映射的框架,它可以手工匹配POJO、SQL和映射关系,无需像Hibernate一样再写任何的映射规则,大大地提高了开发效率和框架应用的灵活性,是当今Web开发的主流框架。
对于MyBatis的掌握,我们应该从认识“表面现象”———MyBatis的基本构成开始。我们首先来了解一下MyBatis的核心组件:
- SqlSessionFactoryBuilder(构造器):它会根据配置信息或者代码来生成工厂接口(SqlSessionFactory)。
- SqlSessionFactory(工厂接口):依靠SqlSessionFactory来生成SqlSession(会话)。
- SqlSession(会话):是一个既可以发送SQL去执行并返回结果,也可以获取Mapper的接口。它类似于一个JDBC的Connection对象。主要有两个作用,首先是发送SQL去执行并返回结果,其次是获取Mapper接口。
-
SQL Mapper:它是MyBatis新设计的组件,它是一个由Java接口和XML文件(或者注解)构成的。需要给出对应的SQL和映射规则。它负责发送SQL去执行,并返回结果。
深入浅出MyBatis技术原理与实战一书中,简洁地以一张图表达了它们之间的关联关系:MyBatis各组件之间的关联关系