[SSM][7][MyBatis的解析和运行原理]

SSM框架讲解(史上最详细的文章) SSM框架是spring、springMVC、mybatis框架的整合,是标准的MVC模式。标准的SSM框架有四层,分别是dao层(mapper),service层,controller层View层。使用spring实现业务对象管理,使用springMVC负责请求的转发视图管理,mybatis作为数据对象的持久化引擎。1)持久层dao层(mapper)层作用主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此。2)业务层Service层作用3)表现层作用作用。... 阅读详情

第 7 章 MyBatis的解析和运行原理

MyBatis的运行过程分为两大步

  1. 读取配置文件缓存到Configuration对象,用以创建SqlSessionFactory
  2. SqlSession的执行过程

7.1 构建SqlSessionFactory过程

SqlSessionFactoryMyBatis的核心类之一,其最重要的功能就是提供创建MyBatis的核心接口SqlSession,所以要先创建SqlSessionFactory,为此要提供配置文件和相关的参数。

MyBatis采用了Builder模式去创建SqlSessionFactory,在实际中可以通过SqlSessionF actoryBuilder去构建,其构建分为两步。

  1. 通过XMLConfigBuilder解析配置的XML文件,读出所配置的参数,并将读取的内容存入Configuration 类对象中。
  2. 使用Confinguration 对象去创建SqlSessionFactory
7.1.1 构建Configuration

SqlSessionFactory构建中,Configuration是最重要的,它的作用是:

  • 读入配置文件,包括基础配置的XML和映射器XML(或注解)。
  • 初始化一些基础配置,比如MyBatis的别名等,一些重要的类对象(比如插件、映
    射器、Object工厂、typeHandlers对象等)。
  • 提供单例,为后续创建SessionFactorγ服务,提供配置的参数。
  • 执行一些重要对象的初始化方法。

Configuration是通过XMLConfigBuilder去构建的,首先它会读出所有XML配置的信息,然后把它们解析并保存在Configuration单例中。它会做如下初始化:

  • properties 全局参数。
  • typeAliases 别名。
  • Plugins 插件。
  • objectFactory 对象工厂。
  • objectWrapperFactory 对象包装工厂。
  • reflectionFactory 反射工厂。
  • settings 环境设置。
  • environments 数据库环境。
  • databaseldProvider 数据库标识。
  • typeHandlers 类型转换器。
  • Mappers 映射器。

它们都会以类似typeHandler注册那样的方法被存放到Configuration单例中,以便未来将其取出。

7.1.2 构建映射器的内部组成

XMLConfigBuilder解析XML时,会将每一个SQL和其配置的内容保存起来。一般而言,在MyBatis中一条SQL和它相关的配置信息是由3个部分组成的,它们分别是MappedStatementSqlSourceBoundSql

  • MappedStatement的作用是保存一个映射器节点(select|insert|delete|update)的内容。它是一个类,包括许多我们配置的SQLSQLid、缓存信息、resultMapparameterTyperesultTyperesultMaplanguageDriver等重要配置内容。
  • SqlSource是提供BoundSql对象的地方,它是MappedStatement的一个属性。它的作用是根据上下文和参数解析生成需要的SQL
  • BoundSql是一个结果对象,也就是SqlSource通过解析得到的SQL和参数

对于最终的参数和SQL 都反映在BoundSql类对象上,在插件中往往需要拿到它进而可以拿到当前运行的SQL和参数,从而对运行过程做出必要的修改,来满足特殊的需求

BoundSql会提供3个主要的属性:parameterMappingsparameterObjectsql

  1. parameterObject为参数本身,可以传递简单对象、POJO或者Map@Param注解的参数
  2. parameterMappings是一个List,它的每一个元素都是ParameterMapping对象。对象会描述参数,参数包括属性名称、表达式、javaTypejdbcTypetypeHandler等重要信息
  3. sql属性就是书写在映射器里面的一条被SqlSource解析后的SQL

7.2 SqlSession运行过程

7.2.1 映射器(Mapper)的动态代理

略(没看懂)

7.2.2 SqlSession下的四大对象

SqlSession的执行过程是通过ExecutorStatementHandlerParameterHandlerResultSetHandler来完成数据库操作和结果返回的

  • Executor代表执行器,由它调度StatementHandlerParameterHandlerResultSetHandler
    等来执行对应的SQL。其中StatementHandler是最重要的。
  • StatementHandler的作用是使用数据库的Statement执行操作
  • ParameterHandler是用来处理SQL参数的。
  • ResultSetHandler是进行数据集ResultSet的封装返回处理的,它相当复杂,好在我们不常用它。
7.2.3 SqlSession的运行

SqlSession是通过执行器Executor调度StatementHandler来运行的。而StatementHandler经过3步

  • prepared预编译SQL
  • parameterize设置参数
  • query/update执行SQL

其中,parameterize是调用parameterHandler的方法设置的,而参数是根据类型处理器typeHandler处理的。query/update方法通过ResultSetHandler进行处理结果的封装,如果是update语句,就返回整数,否则就通过typeHandler处理结果类型,然后用ObjectFactory提供的规则组装对象,返回给调用者

SSM框架原理以及流程 SSM框架原理以及流程一:原理二:开发流程1.新建maven项目2.配置整合文件2.1 配置pom.xml文件---引入依赖2.2 一:原理 二:开发流程 1.新建maven项目 2.配置整合文件 2.1 配置pom.xml文件—引入依赖 <properties> <project.spring.version>5.3.9</project.spring.version> </properties> <dependencies> 阅读详情

相关推荐

SSM深入解析》目录导航与汇总

SSM深入解析》 文章目录1 谈谈SSM框架Redis2 类加载器、反射动态代理3 设计模式4 了解Spring MVC5 Spring MVC基础6 深入Spring MVC的九大组件7 Spring MVC基础应用8 Spring MVC核心应用9 MyBatis组件10 MyBatis的XML配置文件11 MyBatis的XML映射文件 为方便订阅的朋友查看,本文将已更新的文章整理出来(为方便有的朋友想直接学习实战部分,实战部分已经开了专栏,欢迎订阅:(SSM项目实战)[https://blog

谙忆-陈浩翔 1万+

Spring+SpringMVC+Mybatis SSM三大框架的运行流程、原理、核心技术详解

Spring+SpringMVC+Mybatis SSM三大框架的运行流程、原理、核心技术详解 理解很透彻, 入门五星推荐

Java SSM实现的农场信息管理系统(含可运行源码、课程报告与答辩PPT)

一套开箱即用的农场信息管理实战项目,基于Spring+SpringMVC+MyBatisSSM)整合开发,专为Java课程设计本科毕业设计准备。后端使用Maven构建,JDK 1.8 + Tomcat 7/8 + MySQL 5.7环境可直接部署,包含完整源码、数据库初始化脚本、配置文件(dataSources.xml、mybatis-generator等)及lib依赖包。前端采用JSP/HTML配合jQuery,功能覆盖农场基本信息录入、员工信息维护、作物生长记录登记、农资库存查询与统计等核心业务场景

kk1234的博客 148

SSM(Spring+SpringMVC+MyBatis)整合,2020最新详解版

SSM(Spring+SpringMVC+MyBatis)整合,最新详解版 2020最新版,详细注释,另已与Redis整合!

SSM第四讲 Mybatis原理及开发流程(转载)

Mybatis原理及开发流程 Mybatis介绍 原理及开发流程 log4j日志操作 三种操作方式CRUD 总配置文件说明 mapping映射文件说明 一、MyBatis介绍 1.什么是MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年 迁移到了google code,并且改名为MyBatis 。是一个基于Java的持久层ORM关系映射框架 MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码

forest_tree的博客 207

SSM--MyBatis工作原理--18.6.24

yingzi___belief的博客 216

SSM框架(SpringMVC+spring+mybatis原理

SpringMVC框架 在用户发起请求之后,DispatchServlet将截获请求并解析URL,即,去掉协议名、域名、端口号项目名,获取其他字符串,如对于请求地址http:///127.0.0.1:8080/project/student/getStudent来说,即为获取student/getStudent。 将解析出来的URL作为key值,到handleMapping中查找所有...

code_while的博客 1464

SSM(Spring+SpringMVC+MyBatis整合)基础原理概述

理解框架不易,最佳的方式是:1. 从简单总结中体会精髓;2. 在执行的环境中感受运行魅力,加深精髓理解;3. 对理论的全面研究,加上实验,自己总结。通过这三驾马车的同时奋进,一定能够高效的完成学习任务。 先是总结体会: 一、Spring的Bean自动装配机制: 1.基于XML机制装配; 2.基于Annotation装配;3.自动装配; 首先,明确一下Spring中重要的配置文件:***.x...

youfa-zhang的博客 2016

《Java EE SSM框架》学习笔记(7MyBatis解析运行原理

MyBatis运行过程,分两步: 1、读取配置文件,缓存到Configuration对象,用以创建SqlSessionFactory。 2、SqlSession的执行过程。 掌握源码中的技巧、设计开发模式,对我们大有裨益。 构建SqlSessionFactory过程: MyBatis采用Builder模式,去创建SqlSessionFactory。 实际,通过SqlSessionF...

HeinSven的博客 418

皮皮辉对SSM框架的原理运行流程的小总结

SSM框架的原理运行流程SSM框架简介SpringSpring的核心技术SpringMVCSpringMVC框架框架执行流程Mybatis 这次的小结总体而言相较于上上篇,总体框架并没有变化,所以本篇博客直接跳过框架直指其原理运行流程 SSM框架简介 SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是S...

qq_38147101的博客 459

SSM框架的原理,作用搭建

SSM框架的原理,作用搭建 SSM框架是一个三层(前端+业务+数据) 作用: SSM框架是spring MVC ,springmybatis框架的整合,将整个系统划分为表现层,controller层,service层,DAO层四层 使用spring MVC负责请求的转发视图管理,spring实现业务对象管理,mybatis作为数据对象的持久化引擎 原理: SpringMVC: 框架执行流程 ...

zsq543496265的博客 1083

深入解析SSM框架:从原理到实战

SSM框架是Spring、SpringMVCMyBatis的整合框架,采用标准MVC模式,分为持久层(DAO)、业务层(Service)、控制层(Controller)视图层(View)。Spring负责业务对象管理(IOC/AOP),SpringMVC处理请求转发视图管理,MyBatis实现数据持久化。该框架具有低耦合、简化开发等优点,但也存在学习曲线陡峭、配置复杂等缺点。文章详细介绍了SSM各层功能、工作原理,并通过用户管理案例(增删改查)演示了具体实现,包括实体类设计、Mapper接口定义、XM

weixin_74201783的博客 1235

SSM实现原理以及SSM开发环境搭建整合

文章目录前言一、SSM的实现原理1、作用2、原理二、SSM开发环境搭建整合整体结构图Maven配置依赖Spring 配置整合SpringMVC配置web.xml文件Log4j的配置Mybatis的配置mybatis-config文件内容总结 前言 最近这个周末在面试一家福建的不错的公司。笔试题+面试。这是我的第一次面试,昨天技术面是有的紧张,但是今天通知我并进行了人事面 。我觉得吧应该稳了,对于笔试题我想等我忙完了在进行总结,在技术面部分我发现他们都是问你项目经历所用到的技术,比如ssm的实现原理,s..

weixin_43691773的博客 1554

ssm整合执行流程(图解)

博主是用的最简单得的一个ssm图书馆系统整合理解 思想原理还有里面的流程图是转载的狂神说java(B站) ssm框架简单解析 springmvc 负责整个项目思想得架构 spring dao(操作数据库) service(业务逻辑) mybatisspring-dao一起操作数据库) 项目整合文件结构 mvc执行原理 执行原理文字解析 1.结合操作,解析执行原理(登录操作) view页面 2.前端利用一个from表单提交 username password数据 3.触发

qq_44815020的博客 7645

SSM框架简单介绍

一. SSM框架简介及特征 1.SpringMVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow 里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring 的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等。 Spring MVC 分离了控制器、模型对象、过滤器以及处理程序对象的角

qq_44709970的博客 5万+

SSM框架详细讲解

SSM框架是spring、spring MVC 、mybatis框架的整合,是标准的MVC模式。标准的SSM框架有四层,分别是dao层(mapper),service层,controller层View层。使用spring实现业务对象管理,使用spring MVC负责请求的转发视图管理,mybatis作为数据对象的持久化引擎。1)持久层:dao层(mapper)层作用:主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此。

m0_60814318的博客 8493

3- 7 SSM框架知识点总结

5 注解(了解)6 事务处理(了解)7 声明式事务处理(非常重要,背诵如何复制粘贴)3 视图解析器的前缀后缀4 参数绑定 简单类型的参数绑定5 方法的返回值3 controller3 参数绑定(原始po类型参数绑定)(重点)4 自定义的转换器(重点)参数绑定: 数组(重点)参数绑定 po类的集合对象 List参数绑定 po类的map集合 Mapspringmvc本地化的对象2 FastJson:用法同Jackson

WilsonDone的博客 886

SSM框架搭建--超简单详细干净

SSM框架搭建--超简单详细干净,新手必看。

he123456lei的博客 9247
上一篇: [算法导论][10][基本数据结构]
下一篇: [C语言]
TOUGH6
博客等级 码龄9年 2粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值