Spring Boot学习笔记(十)Spring Boot 集成 MyBatis —— 概念篇

Spring Boot 集成 MyBatis —— 概念篇

  • ORM框架
    • 对象关系映射:Object Relational Mapping
    • 出现原因:解决面向对象与关系型数据库的不匹配而产生的技术
    • 具体实现:ORM 通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。
  • Mybatis
    • Mybatis就是一款标准的ORM框架,支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。
    • MyBatis 消除了几乎所有的JDBC 代码和参数的手工设置以及对结果集的检索封装。
    • MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的实体类映射成数据库中的记录。
  • Mybatis优缺点
    Pros Cons
    1、SQL 被统一提取出来,便于统一管理和优化 1、编写 SQL 语句时工作量很大
    2、SQL 和代码解耦,将业务逻辑和数据访问逻辑分离,项目结构更清晰 2、SQL 语句依赖于数据库,导致数据库移植性差
    3、提供映射标签,支持对象与数据库的 ORM 字段关系映射
    4、灵活书写动态 SQL,支持各种条件来动态生成不同的 SQL
  • Mapper 实现方式
    • 基于 XML 的 Mapper 配置文件
    • 基于 Java 注解的MyBatis 注解
    • 直接使用 MyBatis 提供的 API
  • Mapper 接口
    • Mapper 接口是指自行定义的一个数据操作接口,类似于通常所说的 DAO
    • MyBatis 会自动为 Mapper 接口创建动态代理对象
    • Mapper 接口的方法通常与 Mapper 配置文件中的 select、insert、update、delete 等 XML 结点存在对应关系
  • Mybatis 的核心接口 —— Executor
    • MyBatis 中所有的 Mapper 语句的执行都是通过 Executor 进行的
  • MyBatis 的关键对象 —— SqlSession
    • SqlSession 类似于 JDBC 的Connection
    • SqlSession 对象完全包含以数据库为背景的所有执行 SQL 操作的方法
    • 它的底层封装了JDBC 连接,可以用 SqlSession 实例来直接执行被映射的 SQL 语句
  • MyBatis 的关键对象 —— SqlSessionFactory
    • SqlSessionFactory是单个数据库映射关系经过编译后的内存镜像
    • SqlSessionFactory 对象的实例可以通过 SqlSessionFactoryBuilder 对象类获得
    • SqlSessionFactoryBuilder 可以从 XML 配置文件或预先定制的 Configuration 的实例构建出
  • Mybatis 工作流程
    • Spring Boot学习笔记(十)Spring Boot 集成 MyBatis —— 概念篇_第1张图片
    • 加载 Mapper 配置的 SQL 映射文件,或者是注解的相关 SQL 内容
    • 创建会话工厂:MyBatis 通过读取配置文件的信息来构造出会话工厂(SqlSessionFactory)
    • 创建会话:根据会话工厂,MyBatis 就可以通过它来创建会话对象(SqlSession)。会话对象是一个接口,该接口中包含了对数据库操作的增删改查方法
    • 创建执行器:因为会话对象本身不能直接操作数据库,所以它使用了一个叫做数据库执行器
      (Executor)的接口来帮它执行操作
    • 封装 SQL 对象:在这一步,执行器将待处理的 SQL 信息封装到MappedStatement对象中,MappedStatement对象包括 SQL 语句、输⼊入参数映射信息(Java 简单类型、HashMap 或 POJO)和输出结果映射信息(Java 简单类型、HashMap 或 POJO)
    • 操作数据库:拥有了执行器和 SQL 信息封装对象就使用它们访问数据库了,最后再返回操作结果,结束流程。
  • MyBatis-Spring-Boot-Starter
    • MyBatis-Spring-Boot-Starter是MyBatis 快速集成 Spring Boot 提供的一个组件包
    • 优点
      • 构建独立的应用
      • 几乎可以零配置
      • 需要很少的 XML 配置
    • 集成方案
      • 简化后的 XML 配置版
      • 使用注解
        下一篇:Spring Boot 集成 MyBatis —— 实战篇

你可能感兴趣的:(Spring,Boot学习笔记,后端,SSM学习笔记,Spring,Boot学习笔记,Spring,Boot,集成,MyBatis,Mybatis框架详解)