Mybatis原理详解

    在这篇博文中小编将给大家简单介绍一下Mybatis的基本原理。


【什么是Mybatis】

Mybatis本是apache的一个开源项目iBatis2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis

iBatis一词来源于"internet""abatis"的组合,是一个基于java的持久层框架。iBatis提供的持久层框架包括SQLMapsData Access Objects(DAO)


【基本功能】

Mybatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。Mybatis使用简单的XML或注解用于配置和原始映射,将接口和javaPOJOs映射成数据库中的记录。

每个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,进行深入学习!


posted @ 2016-09-30 19:05  幻想泡沫  阅读(2482)  评论(0编辑  收藏  举报