来,先入个门
1.概述
mybatis是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使开发者只需要关注 sql 语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。
mybatis通过xml配置或注解的方式将要执行的各种 statement 配置起来,并通过java 对象 和 statement 中sql 的动态参数进行映射生成最终执行的 sql 语句。
最后mybatis框架执行sql并将结果映射为java对象并返回。采用ORM思想解决了实体和数 据库映射的问题,对jdbc 进行了封装,屏蔽了jdbc api 底层访问细节,使我们不用与jdbc api 打交道,就可以完成对数据库的持久化操作。
2.MyBatis结构
SqlMapConfig.xml, 此文件作为mybatis的核心配置文件,配置了mybatis的运行环境等信息。
Mapper.xml, 即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在 SqlMapConfig.xml中加载。
SqlSessionFactory, 通过mybatis配置信息创建,即会话工厂对象
SqlSession, 由SqlSessionFactory获取,用来操作数据库。
Executor, mybatis底层自定的接口,用来操作数据库。
MappedStatement, mybatis的底层封装对象,它包装了mybatis配置信息及sql映射信息等。
mapper.xml文件中一个sql对应一个MappedStatement对象。
输入映射,包括HashMap、基本类型、pojo,Executor通过MappedStatement在执行sql 前将输入的java对象映射至sql中,输入映射相当于JDBC编程中对preparedStatement设置参数。
输出映射,包括HashMap、基本类型、pojo,Executor通过MappedStatement在执行sql 后将输出结果映射至java对象中,输出映射相当于JDBC编程中对结果的解析处理过程。