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

栏目: Java · 发布时间: 4年前

内容简介:JDBC是Java与数据库交互的统一API.传统的JDBC编程的操作步骤如下:ORM(Object-Relational-Mapping)对象关系映射,将JavaBean和数据库对象进行相互的转换。Hibernate、MyBatis、JPA、Spring JDBC

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

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

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

1.2 常见持久化框架

Hibernate、MyBatis、JPA、Spring JDBC

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 语句可以被动态生成。

2.1 Mybatis整体架构

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

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

2.2 Mybatis SQL执行流程

SQL语句的执行涉及各个组件,其中比较重要的是Executor,StatementHandler,ParameterHandler和ResultSetHandler。

Executor主要负责一级缓存和二级缓存,并提供是事务管理的相关操作,它会将数据库相关操作委托给StatementHandler完成,StatementHandler首先通过ParammeterHandler完成SQL的实参绑定,然后通过java.sql.Statement对象执行sql语句并得到结果集ResultSet,最后通过ResultSetHandler完成结果集的映射,得到对象并返回。如下图所示:

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

具体的模块,后面的模块会讨论.


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

ACM国际大学生程序设计竞赛题解

ACM国际大学生程序设计竞赛题解

赵端阳//袁鹤 / 电子工业 / 2010-6 / 38.00元

《ACM国际大学生程序设计竞赛题解(1)》可以作为高等院校有关专业的本科和大专学生参加国际大学生程序设计竞赛的辅导教材,或者作为高等院校数据结构、C/C++程序设计或算法设计与分析等相关课程的教学参考书。随着各大专院校参加ACM/ICPC热情的高涨,迫切需要有关介绍ACM国际大学生程序设计竞赛题解的书籍。《ACM国际大学生程序设计竞赛题解(1)》根据浙江大学在线题库的前80题,进行了解答(个别特别......一起来看看 《ACM国际大学生程序设计竞赛题解》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换