Mybatis原理详解
在这篇博文中小编将给大家简单介绍一下Mybatis的基本原理。
【什么是Mybatis】
Mybatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。
iBatis一词来源于"internet"和"abatis"的组合,是一个基于java的持久层框架。iBatis提供的持久层框架包括SQLMaps和Data Access Objects(DAO)
【基本功能】
Mybatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。Mybatis使用简单的XML或注解用于配置和原始映射,将接口和java的POJOs映射成数据库中的记录。
每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。
用xml文件构建sqlsessionfactory实例是非常简单的事情。推荐在这个配置中使用类似路径资源,但你可以使用任何Reader实例,包括用文件路径或file://开头的url创建实例。MyBatis有一个实用类——resources,它有很多方法,可以方便地从类路径及其他位置加载资源。
【框架介绍】
1)基本框图
2)原理详解:
·Mybatis配置:sqlmapConfig.xml,此文件作为Mybatis的全局配置文件,配置了Mybatis的运行环境等信息。mapper.xml即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。
·通过Mybatis环境等配置信息过早sqlsessionfactory即会话工厂
·由会话工厂创建sqlsession即会话,操作数据库需要通过sqlsession进行。
·mybatis底层自定义了Executor执行器接口操作数据库,Executor接口有两个实现,一个是基本执行器,一个是缓存执行器。
·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编程中对prepared Statement设置参数。
·Mapped Statement对sql执行输出结果进行定义,包括Hashmap、基本类型、pojo、Executor通过Mapped Statement在执行sql后将输出结果映射到java对象中,输出结果映射过程相当于jdbc编程中对结果的解析处理过程。
【更多参考】
可参考http://www.mybatis.org/mybatis-3/zh/index.html,进行深入学习!