1.1.MyBatis基本概念

1.MyBatis基本概念

1.概念

官方介绍:MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

初步了解:

1.MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。

2.mybatis是一一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。

3.mybatis通过xml或注解的方式将要执行的各种statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射为java对象并返回。

4.采用ORM思想解决了实体和数据库映射的问题,对jdbc进行了封装,屏蔽了jdbc api底层访问细节,使我们不用与jdbc api打交道,就可以完成对数据库的持久化操作。

2.ORM介绍

对象关系映射(Object Relational Mapping,简称ORM)是通过使用描述对象和数据库之间映射(两个元素的集之间元素相互对应的关系)的元数据,将面向对象语言程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。 这也同时暗示着额外的执行开销;然而,如果ORM作为一种中间件实现,则会有很多机会做优化,而这些在手写的持久层并不存在。 更重要的是用于控制转换的元数据需要提供和管理;但是同样,这些花费要比维护手写的方案要少;而且就算是遵守ODMG规范的对象数据库依然需要类级别的元数据。

简单说明:就是把数据库表和实体类及实体类的属性对应起来,让我们可以操作实体类就实现操作数据库表。
1.1.MyBatis基本概念

1. 持久化

持久(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。

2.持久层

持久层(Persistence Layer),即专注于实现数据持久化应用领域的某个特定系统的一个逻辑层面,将数据使用者和数据实体相关联。

3.ORM

即Object-Relationl Mapping,它的作用是在关系型数据库和对象之间作一个映射,这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了 。

4.持久层技术解决方案

JDBC技术: Connection PreparedStatement ReshltSet

Spring的JdbcTemplate: Spring中对jdbc的简单封装

Apache的DBUtils: 它和Spring的JdbcTemplate很像,也是对Jdbc的简单封装

以上三个都不是框架

JDBC是规范

Spring的JdbcTemplate和Apache的DBUtils都只是工具类,相当于规范方实现类

3.ORM框架

持久化和ORM设计的优点

在目前的企业应用系统设计中,MVC,即 Model(模型)- View(视图)- Control(控制)为主要的系统架构模式。MVC 中的 Model 包含了复杂的业务逻辑和数据逻辑,以及数据存取机制(如 JDBC的连接、SQL生成和Statement创建、还有ResultSet结果集的读取等)等。将这些复杂的业务逻辑和数据逻辑分离,以将系统的紧耦 合关系转化为松耦合关系(即解耦合),是降低系统耦合度迫切要做的,也是持久化要做的工作。MVC 模式实现了架构上将表现层(即View)和数据处理层(即Model)分离的解耦合,而持久化的设计则实现了数据处理层内部的业务逻辑和数据逻辑分离的解耦合。 而 ORM 作为持久化设计中的最重要也最复杂的技术,也是目前业界热点技术。目的,解决持久化问题.

Hibernate:

**全自动的ORM框架,不用书写SQL语句,**就可以对数据库进行增删改查. “跨平台” .Hibernate的代码可以适用于多种数据库.但是,配置比较复杂,不灵活。

Mybatis:

半自动的ORM框架,需要书写SQL语句,就可以对数据库进行增删查改.轻量级的ORM框架.

Mybatis 半自动化模式操作数据,hibenate完全面向对象操作数据

Mybatis运行的性能高于hibernate的性能

Mybatis开发速度低于hibernate的开发速度

Mybatis应用在互联网项目的开发,Hibernate用在传统的MIS系统开发

orm工具的基本思想

无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点:

  1. 从配置文件(通常是XML配置文件中)得到 sessionfactory.
  2. 由sessionfactory 产生 session
  3. 在session 中完成对数据的增删改查和事务提交等.
  4. 在用完之后关闭session 。
  5. 在Java 对象和 数据库之间有做mapping 的配置文件,也通常是xml 文件。

4.mybatis和JDBC的比较

1.1.MyBatis基本概念