MyBatis框架是基于ORM(Object Relational Mapping,对象/关系映射)的优秀的持久化框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
持久化简介
持久化就是将内存中有用的数据以某种技术保存起来并可以取出来再应用。也就是说,可以将内存中的数据类型转换为存储模型,以及存储型转换,以及存储模型转换为内存中的数据类型。内存中的数据模型可以是任意数据结构或对象模型,存储数据的模型可以是XML、二进制流、关系模型等。数据库技术及将数据以文件形式保存在永久介质(磁盘等)中的序列化技术等,都是对数据进行持久化的例子。
ORM简介
ORM是一种在关系型数据库和面向对象编程语言之间进行数据转换的编程技术。他试图通过在对象模型和数据库关系模型之间建立起对应关系,从而达到通过JavaBean对象操作数据库表中数据的目的。
ORM是Object Relation Mapping的首字母缩写。Object指的是面向对象编程的对象或者一个类,Relation指的是关系型数据库里面的关系,Mapping指的是映射,连在一起的意思就是将关系型数据库跟代码里面的类做映射,好像还是没有说的很明白,举个例子,比如我们有张数据表,如下所示
这张表其实就代表了一个类,如下Java代码所示
public class Student{
public String name;
public int age;
public int grade;
}
数据库里面的每一行其实就代表了类的一个实例,如下关系所示
对应的实例如下
Student studentA = new Student();
studentA.name = "Lily";
studentA.age = 10;
studentA.grade = 3;
Student studentB = new Student();
studentB.name = "Jame";
studentB.age = 11;
studentB.grade = 4;
通过上面的对应关系,如果有一种技术能够像操作对象一样操作数据库,例如对每个实例的增删改就直接对应到数据库里面的增删改,那么我们的代码就会摆脱大量的try-catch语句,以及一系列的数据连接-关闭等复杂而冗余的操作,ORM正是为了解决这个问题而提出来的。
例如之前文章手把手教你使用Mybatis连接数据库里面所写的,当我们要操作数据的时候通过ORM技术暴露出来的API我们能够很简便的进行数据的插入操作,而完全不需要感知数据库的存在。
ORM是Object Relation Mapping的首字母缩写。Object指的是面向对象编程的对象或者一个类,Relation指的是关系型数据库里面的关系,Mapping指的是映射,连在一起的意思就是将关系型数据库跟代码里面的类做映射,好像还是没有说的很明白,举个例子,比如我们有张数据表,如下所示
这张表其实就代表了一个类,如下Java代码所示
public class Student{
public String name;
public int age;
public int grade;
}
数据库里面的每一行其实就代表了类的一个实例,如下关系所示
对应的实例如下
Student studentA = new Student();
studentA.name = "Lily";
studentA.age = 10;
studentA.grade = 3;
Student studentB = new Student();
studentB.name = "Jame";
studentB.age = 11;
studentB.grade = 4;
通过上面的对应关系,如果有一种技术能够像操作对象一样操作数据库,例如对每个实例的增删改就直接对应到数据库里面的增删改,那么我们的代码就会摆脱大量的try-catch语句,以及一系列的数据连接-关闭等复杂而冗余的操作,ORM正是为了解决这个问题而提出来的。
在实际·开发中,应用程序使用对象模型封装、传递和使用数据,而存储数据用的是关系型数据库,这就需要大量繁复的代码以便将数据在这两种模型之间进行转换,且数据库移植性差,而ORM在对象模型和数据库关系模式之间建立了一座桥梁。NyBatis框架通过XML或注解,将特定的SQL语句和Java实体关联起来,即可通过MyBatis框架提供的API执行SQL语句并完成数据在两种模型之间的转换,是一种半自动化的ORM实现。