Mybatis技术内幕(1):Mybatis简介

1.1 ORM简介

JDBC是Java与数据库交互的统一API.传统的JDBC编程的操做步骤以下:html

  • (1)、注册数据库驱动,明确指定数据库URL地址、数据库用户名、密码等链接信息
  • (2)、经过DriverManager打开数据库链接
  • (3)、经过数据库链接建立Statement对象
  • (4)、经过Statement对象执行SQL语句,获得ResultSet对象
  • (5)、经过ResultSet读取数据,并将数据转换成JavaBean对象
  • (6)、关闭ResultSet、Statement对象以及数据库链接,释放相关资源

ORM(Object-Relational-Mapping)对象关系映射,将JavaBean和数据库对象进行相互的转换。java

1.2 常见持久化框架

Hibernate、MyBatis、JPA、Spring JDBCgit

2.0 Mybatis简介

  MyBatis的前身是iBATIS,是Clinton-Begin在2001年发起的一个开源项目,最初侧重于密码软件的开发,后来发展成为一款基于Java的持久层框架。2004年Clinton将iBATIS的名字和源码捐赠给了Apache软件基金会,接下来的6年中,开源软件世界发生了巨大的变化, 一切开发实践、基础设施、许可,甚至数据库技术都完全改变了。2010年核心开发团队决定离开Apache软件基金会,而且将iBATIS更名为MyBatis。
  MyBatis是一款优秀的支持自定义SQL查询、存储过程和高级映射的持久层框架,消除了几乎全部的JDBC代码和参数的手动设置以及结果集的检索。MyBatis可使用XML或注解进行配置和映射,MyBatis经过将参数映射到配置的SQL造成最终执行的SQL 语句,最后将执行SQL的结果映射成Java对象返回。
  与其余的ORM(对象关系映射)框架不一样,MyBatis并无将Java对象与数据库表关联起来,而是将Java方法与SQL语句关联。MyBatis容许用户充分利用数据库的各类功能,例如存储过程、视图、各类复杂的查询以及某数据库的专有特性。若是要对遗留数据库、不规范的数据库进行操做,或者要彻底控制SQL的执行,MyBatis将会是一个不错的选择。
  与JDBC相比,MyBatis简化了相关代码,SQL语句在一行代码中就能执行。MyBatis提供了一个映射引擎,声明式地将SQL语句的执行结果与对象树映射起来。经过使用一种内建的类XML 表达式语言SQL 语句能够被动态生成。   github

2.1 Mybatis总体架构

MyBatis总体分为三层:基础支持层、核心处理层、接口层 sql

具体的模块,后面章节会深刻讨论.

2.2 Mybatis SQL执行流程

SQL语句的执行涉及各个组件,其中比较重要的是Executor,StatementHandler,ParameterHandler和ResultSetHandler。
  Executor主要负责一级缓存和二级缓存,并提供是事务管理的相关操做,它会将数据库相关操做委托给StatementHandler完成,StatementHandler首先经过ParammeterHandler完成SQL的实参绑定,而后经过java.sql.Statement对象执行sql语句并获得结果集ResultSet,最后经过ResultSetHandler完成结果集的映射,获得对象并返回。以下图所示: 数据库

2.3 Mybatis源码

2.4 Mybatis书籍推荐

  • 刘增辉 《MyBatis 从入门到精通》
  • 徐郡明 《MyBatis 技术内幕》 重源码

2.5 Mybatis网址推荐

Mybatis系列文章内容来自一些大牛的网络博客和Mybatis技术书籍,主要用于记录、汇总和结合一些本身的想法。分享给你们一块儿学习编程

失控的阿甘,乐于分享,记录点滴缓存

相关文章
相关标签/搜索