Mybaits 入门篇第一章

前言:
此笔记从以下几个方面介绍,纵横使用到源码的全部流程。

  • 设计模式
  • mybaits和hibernate都是ORM框架他们之间的区别是什么
  • mybatis读取配置实体类文件介绍
  • mybatis配置文件介绍
  • mybaits反向工程的生成
  • mybatis插件源码
  • mybatis源码分析

Mybatis 源码分析全景图

在这里插入图片描述

mybaits和hibernate都是ORM框架他们之间的区别是什么

Hibernate

  • 类导航(通过查询数据库自动映射成java对象) 全自动

Mybatis

  • 通过配置xml来自动映射 半自动

mybatis读取配置实体类文件介绍

设计模式
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁,将一个类的接口转换成客户希望的
另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作;

适配器模式
以下下适配器模式的三种角色

  • Target: 目标角色、其他得到的接口
  • Adaptee: 适配器角色,别适配的接口
  • Adpater: 适配角色,将源接口转换成目标接口

在mybaits的使用

mybatis层次分析

代理模式
定位: 给目标对象提供一个代理对象,并由代理对象控制目标对象的引用
目的:(1)通过引入代理对象的方式来间接访问目标对象,防止直接访问目标对象给系统带来的
不必要复杂性; (2)通过代理对象对原有的业务增强;
在这里插入图片描述

BaseJdbcLogger
在这里插入图片描述

  • 工厂模式(Factory Pattern)
  • 工厂模式(Factory Pattern)属于创建型模式,它提供了一种创建对象的最佳方式。定义一个创建对象的接
  • 让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行

在这里插入图片描述

  • 工厂接口(Factory):工厂接口是工厂方法模式的核心接口,调用者会直接和工厂接口交互用于获取具体的
    产品实现类;
  • 具体工厂类(ConcreteFactory):是工厂接口的实现类,用于实例化产品对象,不同的具体工厂类会根据需求
    实例化不同的产品实现类;
  • 产品接口(Product):产品接口用于定义产品类的功能,具体工厂类产生的所有产品都必须实现这个接口。
    调用者与产品接口直接交互,这是调用者最关心的接口;
  • 具体产品类(ConcreteProduct):实现产品接口的实现类,具体产品类中定义了具体的业务逻辑;

装饰器设计模式
装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,是一种用于代替继承的技术,无需通过继
承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀;
总结: 集成是横向扩展。装饰器可以纵向扩展
在这里插入图片描述

组件(Component):组件接口定义了全部组件类和装饰器实现的行为;

  • 组件实现类(ConcreteComponent):实现Component接口,组件实现类就是被装饰器装饰的
  • 原始对象,新功能或者附加功能都是通过装饰器添加到该类的对象上的;
  • 装饰器抽象类(Decorator):实现Component接
  • 的抽象类,在其中封装了一个Component 对象,也就是被装饰的对象;
  • 具体装饰器类(ConcreteDecorator):该实现类要向被装饰的对象添加某些功能;

Mybatis UML 源码分析
在这里插入图片描述

建造者设计模式
建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

  • Builder:给出一个抽象接口,以规范产品对象的各个组成成分的建造。这个接口规定要实现复杂对象的哪些部分的创建,并不涉及具体
    的对象部件的创建;
  • ConcreteBuilder:实现Builder接口,针对不同的商业逻辑,具体化复杂对象的各部分的创建。 在建造过程完成后,提供产品的实例;
  • Director:调用具体建造者来创建复杂对象的各个部分,在指导者中不涉及具体产品的信息,只负责保证对象各部分完整创建或按某种顺序
    创建;
  • Product:要创建的复杂对象
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_30561643/article/details/103335125