jee第6章 --- 初识MyBatis

  • 6.1 什么是MyBatis

MyBatis(前身是iBatis)是一个支持普通SQL查询、存储过程以及高级映射持久层框架。它和SSH中的Hibernate类似。(SSH的两个SS分别指Strust2和Spring)

MyBatis框架也被称之为ORM(Object/Relation Mapping,即对象关系映射)框架。它是一种为解决面向对象与关系型数据库中数据类型不匹配的技术,它通过描述Java对象与数据库表之间的映射关系,自动将Java应用程序中的对象持久化到关系型数据库的表中。

ORM框架的工作原理:
jee第6章 --- 初识MyBatis

Hibernate与MyBatis有什么区别?

  • Hibernate
    • Hibernate是一个全表映射的框架。
      • 提供POJO到表的映射关系。
    • 需另掌握HQL,Hibernate自动生成对应的SQL,并调用JDBC接口来执行,其开发效率比MyBatis高。
    • Hibernate的缺点:它在多表关联时,对SQL查询的支持较差;更新数据时,需发送所有字段;不支持存储过程;不能通过优化SQL来优化性能等。
  • MyBatis
    • MyBatis是一个半自动映射的框架。
      • 提供POJO、SQL和映射关系。
    • 与Hibernate相比,编写SQL,比用Hibernate的工作量大,但MyBatis可以配置动态SQL并优化SQL。可以通过配置决定SQL的映射规则,它还支持存储过程等。
    • 用MyBatis更适用于一些复杂的和需要优化性能。
  • 6.2 MyBatis的下载和使用

在应用程序中引入核心包、lib目录中的依赖包即可使用MyBatis
jee第6章 --- 初识MyBatis

注意:采用哪种类型的数据库,需要将对应类型的数据库驱动包添加到应用程序的类路径中。(Eclipse界面项目结点中的WEB-INF/lib/)

  • 6.3 MyBatis的工作原理

jee第6章 --- 初识MyBatis
MyBatis在操作数据库时,主要分为8大步骤:

(1) 读取MyBatis配置文件mabatis-config.xml,mabatis-config.xml作为MaBatis的全局配置文件,配置了MyBatis的运行环境等信息,其主要是获取数据库连接。

(2) 加载映射文件Mapper.xml。Mapper.xml即SQL映射文件,该文件配置了操作数据库的SQL语句,需要在mybatis-config.xml中加载才能执行。mybatis-config.xml可以添加多个配置文件,每个配置文件对应数据库中的一张表。

(3) 构建会话工厂。通过MyBatis的环境等配置信息构建会话工厂SqlSessionFactory。

(4) 创建SqlSession对象。由会话工厂创建SqlSession对象。,该对象中包含执行SQL的所有方法。

(5) MyBatis底层定义了一个Executor接口来操作数据库,Executor接口会根据SqlSession传递的参数动态生成SQL语句,同时负责查询缓存的维护。

(6) 根据生成的SQL语句生成MappedStatement对象

(7) 输入参数映射。向MappedStatement输入映射对象,这里的输入参数的映射过程就相当于JDBC编程中对preparedStatement对象设置参数的过程。

(8) 输出参数映射。执行SQL语句,对MappedStatement对象返回的结果进行处理。

6.4 MyBatis的操作步骤

jee第6章 --- 初识MyBatis