Mybatis
- 概述
一个基于java的持久层框架,包括SQL Maps和Data Access Object(DAO)
支持普通SQL查询,存储过程和高级映射。
使用简单的XML或者注解用于配置和原始映射,将接口和java的POJOS ( Plain Old Java Object)映射成数据库中的记录。
简化jdbc操作,简化持久层,sql语句从代码分离,利用反射将表中数据与javabean属性一一映射,即ORM Object Relational Mapping 对象关系映射。
需求与关系模型相对固定 hibernate
互联网需求易变,需要灵活编写sql语句 mybatis
功能架构
API接口层
提供给外部的接口API
数据处理层
负责具体的Sql查找 sql解析 sql执行和执行结果映射处理等。
根据调用的请求,完成一次数据库操作
基础支撑层
最基础的功能支撑,包括连接管理 事务管理 配置加载和缓存处理
为上层的数据处理层提供最基础的支撑。
框架体系结构
1. configration-mybatis
1.1 与spring一样,使用配置文件或者注解配置
1.2 sqlMapConfig.xml 此文仅作为mybatis的全局配置文件,配置了mybatis的运行环境等信息
1.3 sql映射的mapper文件 此文件需要在sqlMapConfig.xml中加载
1.4 构造sqlSessionFactory
1.5 创建sqlSession
1.6 sqlSession使用Executor操作数据库,同Executor具体实现类实现指定dao层数据访问操作。
2. Mapped Statement
框架底层封装对象(sql语句,输入参数,输出结果类型·)包括了mybatis配置信息以及sql映射信息等,mapper文件中一个sql对应一个Mapped Statement对象
3. Sql的输入映射参数
基本和简单类型,hashmap 自定义POJO等
4. Sql的输出映射参数
基本和简单类型,hashmap 自定义POJO等
typeAliases 类型别名
没有注解 按照类名首字母小写
有@Alias注解,按照注解名