MyBatis基础
MyBatis简介
MyBatis概述
-
什么是MyBatis
MyBatis 是一个优秀的Java持久层框架,由apache的ibatis演变而来,它通过XML或注解方式将对象与SQL关联起来,实现了对JDBC操作的封装,简化JDBC代码手动设置参数和手动进行结果集映射的过程。 -
MyBatis 应用场景
MyBatis主要应用于Java技术生态项目中解决持久层的数据库操作问题,例如:行映射,参数映射等。 -
MyBatis 应用优势
3.1、可以更好的实现java代码与SQL语句的分离,提高可维护性
3.2、通过动态SQL可以更灵活的适配需求的变更
3.3、通过SQL映射简化了JDBC代码中的SQL参数及结果集处理。
3.4、合理的架构设计,提高了系统的稳定性和可扩展性。 -
MyBatis的劣势
4.1、SQL语句编写的工作量相对较大(与hibernate框架对比)。
4.2、相比JDBC,执行SQL语句较慢;但比hibernate框架执行SQL语句内存消耗较小。
4.3、SQL语句依赖于数据库,移植性相对较差,不能随意更换数据库。
MyBatis架构体系
- MyBatis应用架构
MyBatis底层实现了对JDBC的封装,MyBatis使用位置介于应用程序与JDBC API之间。
- MyBaits产品架构
对于任何一个持久层框架,都应该具备接口服务、数据处理服务、基础服务等相关功能。MyBatis也不例外,它的架构如下:
其中:
2.1、接口层:主要负责对外提供应用服务
程序中我们直接使用Mybatis接口实现对数据库的CRUD操作
2.2、数据处理层:主要负责处理数据访问问题
1)、SQL参数映射(#{}表达式映射)
2)、SQL解析(语法、语义)
3)、SQL执行(将sql发送到数据库端执行)
4)、SQL结果映射(将ResultSet的数据存到map或者pojo对象)
5)、其他…
2.3、基础服务层
1)、连接服务(配置连接池)
2)、事务服务(保证数据的原子性,一致性,隔离性,持久性)
3)、缓存服务(更好的提高查询性能)
4)、配置服务(别名设置、映射配置、日记配置等等)
5)、其他…
- MyBaits API架构
MyBatis核心配置文件以及API如下所示:
3.1、MyBatis的核心文件
1)、配置文件(例如:mybatis-configs.xml)
该文件提供MyBatis的基本配置(例如连接配置、缓存配置、映射配置)
2)、映射文件(例如xxxMapper.xml)
该文件定义SQL映射,实现ORM
3.2、MyBatis的核心API
1)、SqlSessionFactoryBuilder
负责读取配置文件,创建SqlSessionFactory工厂对象
2)、SqlSessionFactory
负责创建SqlSession对象
3)、SqlSession
负责连接的维护,事务的处理,类似JDBC中的connection