mybatis系统性详解(学习笔记)

本文全面解析MyBatis框架,分析传统JDBC的不足,介绍MyBatis的基础知识,包括注解和XML的优缺点。深入探讨MyBatis的核心概念,如SqlSession、Mapper、Executor和Cache,详细阐述MyBatis的执行流程及缓存机制,包括一级缓存和二级缓存的工作原理,并讲解了MyBatis与Spring的集成以及通用Mapper的使用。
摘要由CSDN通过智能技术生成

mybatis知识


传统JDBC不足

  1. 没有连接池,耗费资源
  2. 硬编码,不利于维护

mybatis基础

  • mybatis之注解和xml优缺点

    注解:不适合复杂sql,收集sql不方便,重新编译
    XML:条件不确定、特殊字符需转义

  • mybatis的plugin

  • mybatis逆向工程。重要


mybatis核心应用配置与原理解析


mybatis核心概念

在这里插入图片描述

整体认识mybatis源码包

  • session— 提供操作数据库的方法
  • cache —缓存
  • annotations— 注解相关
  • binding— mapper相关
  • builder— 解析xml相关
  • parsing— 解析xml相关
  • cursor —返回resultSet
  • datasourcer— 数据管理
  • exceptionsr— 异常
  • executorr —执行器
  • io classloader
  • jdbc
  • mapping —mapper相关封装
  • plugin —拦截器
  • reflection —反射相关
  • scripting —数据厂家
  • transaction —事务

mybatis基本流程类调用

  • java代码引用mybatis
    在这里插入图片描述
  • 返回SqlSessionFactory
    在这里插入图片描述
  • 拿到sqlsession对我们的执行器进行初始化
    在这里插入图片描述
  • selectOne具体执行
    在这里插入图片描述

mybatis流程记录

  • IO流对xml文件进行获取,获得xmlConfigBuilder对象Parser
  • 解析Parser ,也就是对配置文件中 的各配置(如typeAliaes,Mapper)进行解析
  • mapper配置的解析是重点
    • 用XNode对mapper内容进行解析(无须关注这个,其实就是解析XML文件)
    • 获取配置文件中mappers获得结果集
  • 解析完成获取Configuration对象(也就是mybatis-config.xml配置文件的所有信息)
  • 通过Configuration去创建SqlSessionFactory
  • 通过SqlSessionFactory.openSession()方法获得SqlSession
  • 通过SqlSession来操作数据库
    • 根据执行器类型和事务管理级别来获取执行器
    • 执行器会加载XML中配置的plugin(责任链模式:订单系统、java异常底层也是责任链模式)
  • 用SqlSession对执行器进行初始化完成
  • SelectOne→DeafaultSession.SelectOne→SelectList
  • 获取MapperStatement(MapperStatement对应的就是我们在XML中写的查询语句)
    <select id="selectUser&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值