MyBatis介绍
MyBatis是一个优秀的持久层框架,它对JDBC的操作数据库的过程进行封装,使得开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动,创建connection,创建statement,手动设置参数,结果集检索等JDBC繁杂的过程代码。
MyBatis通过XML或者注解的方式将要执行的各种statement(statament,preparedStatement,CallableStatement)
配置起来,并通过Java对象和statement
中的SQL进行映射生成最终执行的SQL语句,最后由MyBatis框架执行SQL并将结果映射成Java对象并返回。
MyBatis 架构
- MyBatis配置
SqlMapConfig.xml
,此文件作为MyBatis的全局配置文件,配置了MyBatis的运行环境等信息。
mapper.xml
文件即SQL映射文件,文件中配置了操作数据库的SQL语句,此文件需要在SqlMapConfig.xml
中加载。
通过MyBatis环境等配置信息构造了
SqlSessionFactory
即会话工厂由会话工厂创建
sqlSession
即会话,操作数据库需要通过sqlSession
进行MyBatis底层自定义了
Excutor
执行器接口操作数据库,Excutor
接口有两个实现,一个是基本执行器,一个是缓存执行器Mapped Statement
也是MyBatis一个底层封装对象,它包装了MyBatis配置信息以及SQL映射信息等,mapper.xml
文件中一个SQL对应一个Mapped Statement
对象,SQL的id
既是Mapped statement
的id
Mapped Statement
对SQL执行输入参数进行定义,包括HashMap
、基本类型、pojo,Executor
通过Mapped Statement
在执行SQL前将输入的Java对象映射至SQL中,输入参数映射就是JDBC编程中的对preparedStatement
设置参数Mapped Statement
对SQL执行输出结果进行定义,包含HashMap
、基本类型、pojo,Excutor
通过Mapped Statement
在执行SQL后将输出结果映射至Java对象中,输出结果映射过程相当于JDBC编程中对结果的解析处理过程