# mybatis 是什么?
mybatis是一个ORM(对象-关系映射)框架,
# 为什么需要mybatis?
传统jdbc操作繁琐,而且有很多重复代码,以前jdbc的开发步骤
-
注册jdbc驱动,指定数据连接信息
-
通过DriverManger打开数据库连接
-
通过连接创建Statement对象。
-
通过statement对象执行sql,得到Result对象。
-
通过resultSet读取数据,将数据转换为JavaBean对象
-
关闭ResultSet、Statement对象以及数据库连接。
当然用户也可以封装属于自己的ORM框架,但是就项目开发可靠性的角度看,优化考虑ORM框架。
# Mybatis整体架构

核心处理层

各组件介绍
| 组件 | 介绍 |
|---|---|
| SqlSession | 为Mybait是的底层API,通过此组件我们可以对数据库进行增删改查 |
| Executor | 执行器,是Mybatis的核心,负责sql语句的生成、执行、结果封装。 |
| StatementHandler | 封装了 JDBC 操作。 |
| ParameterHandler | 负责将用户参数的参数填充为JDBC Statement所需参数 |
| ResultSetHandler | 负责封装ResultSet返回的值 |
| MappedStatement | 维护一条<select|update|delete|insert>标签 |
| SqlSource | todo |
| BoundSql | 动态生成Sql |
# SqlSessionFactory
mybatis的核心就是SqlSessionFactory,SqlSessionFactory自如其名,即使SqlSession工厂,他是通过SqlSessionFactoryBuilder构建获得,而初始化SqlSessionFactoryBuilder有两种:1. xml配置加载。2. Configuration。
xml方式
String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);