1.引言
本文主要讲解Mybatis的整体程序设计,理清楚框架的主要脉络。后面文章我们再详细讲解各个组件。
2.整体设计
2.1 总体流程
(1)加载配置并初始化
触发条件:加载配置文件
配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。
(2)接收调用请求
触发条件:调用Mybatis提供的API
传入参数:为SQL的ID和传入参数对象
处理过程:将请求传递给下层的请求处理层进行处理。
(3)处理操作请求
触发条件:API接口层传递请求过来
传入参数:为SQL的ID和传入参数对象
处理过程:
(A)根据SQL的ID查找对应的MappedStatement对象。
(B)根据传入参数对象解析MappedStatement对象,得到最终要执行的SQL和执行传入参数。
(C)获取数据库连接,根据得到的最终SQL语句和执行传入参数到数据库执行,并得到执行结果。
(D)根据MappedStatement对象中的结果映射配置对得到的执行结果进行转换处理,并得到最终的处理结果。
(E)释放连接资源。
(4)返回处理结果
将最终的处理结果返回。
2.2 功能架构设计
功能架构讲解:
我们把Mybatis的功能架构分为三层:
(1)API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。
(2)数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。
(3)基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。
2.3 框架架构设计
框架架构讲解:
(1)加载配置:配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。
(2)SQL解析:当API接口层接收到调用请求时,会接收到传入SQL的ID和传入对象(可以是Map、JavaBean或者基本数据类型),Mybatis会根据SQL的ID找到对应的MappedStatement,然后根据传入参数对象对MappedStatement进行解析,解析后可以得到最终要执行的SQL语句和参数。
(3) SQL执行:将最终得到的SQL和参数拿到数据库进行执行,得到操作数据库的结果。
(4)结果映射:将操作数据库的结果按照映射的配置进行转换,可以转换成HashMap、JavaBean或者基本数据类型,并将最终结果返回。
分享到:
相关推荐
基于SpringMVC+Spring3+Mybatis框架的OA项目.zip基于SpringMVC+Spring3+Mybatis框架的OA项目.zip基于SpringMVC+Spring3+Mybatis框架的OA项目.zip基于SpringMVC+Spring3+Mybatis框架的OA项目.zip基于SpringMVC+Spring...
该毕业设计主要解决了老师,课程,学生之间的关联关系,采用了spring mvc,spring,mybatis框架,主要功能包括:课程管理,学生管理,教师管理,账号密码重置等功能。 整体业务需求对于学生来说非常简单,是一个适合...
第一节课,我们分析了 MyBatis 的核心特性和一些高级用法。第二节课,我们学习了 Mybatis 的整体架构和模块分层,梳理了 MyBatis 主要的工作流
开发技术:开发技术部分主要还是介绍开发的平台,使用的技术与开发的语言等内容。 系统分析:系统分析部分主要还是分析系统的运行...系统测试:系统测试主要检测完成开发程序整体运行是否报错,程序运行使用是否可靠。
人工智能-项目实践-信息系统分析与设计
该毕业设计采用了spring mvc,spring,mybatis的框架组合,适合刚学完这些框架且打算做互联网项目的同学参考。兼职论坛分为前台和后台功能,前台可以在论坛中发布一些信息,后台可以对信息进行审核。 整体功能包括:...
第4篇是Spring MVC与MyBatis的项目整合实战,通过对水果网络销售平台的需求分析、功能设计、数据库设计以及模块详细编码实现,让读者了解整合项目开发的整体流程。 《Spring MVC+MyBatis开发从入门到项目实战》对...
基于SpringMVC+Spring+MyBatis (SSM) 架构的高效率便捷开发框架.zip基于SpringMVC+Spring+MyBatis (SSM) 架构的高效率便捷开发框架.zip基于SpringMVC+Spring+MyBatis (SSM) 架构的高效率便捷开发框架.zip基于...
39.在线考试系统设计与实现|基于SSM 框架整合即为 Spring、SpringMVC、MyBatis + Mysql+Tomcat设计与实现(可运行源码+数据库+lw) 内容概要:结合计算机系统的结构、概念、模型、原理、方法,在计算机各种优势的情况...
31.学生网上请假系统设计与实现|基于SSM 框架整合即为 Spring、SpringMVC、MyBatis+ Mysql+Java(可运行源码+数据库+lw)登录模块、基础信息模块、班级信息管理模块、用户权限管理模块、和退出模块等多个模块 ...
在实现方面,本系统通过Spring框架实现了业务逻辑的处理,SpringMVC框架负责请求的转发和响应,MyBatis框架则负责与数据库的交互。同时,利用Vue框架实现了前端页面的动态渲染和交互功能,提升了系统的整体性能。 ...
为了满足这个需求,我们设计了一个基于 Spring Boot、MyBatis 和 MyBatis-Plus 的在线招聘网站。以下是这个网站的详细设计: 网站整体架构 我们采用了分层设计的方式,将整个网站分为不同的模块。 前端界面:使用 ...
mybiats框架知识点思维导图整理。包含了mybiats的几个关键类,执行浅析,整体设计,源码的几个主要部件,xml映射配置,元素集合,缓存及鉴别器,动态sql等内容
第四部分是Spring MVC与MyBatis的项目整合实战篇,通过对水果网络销售平台的需求分析、功能设计、数据库设计以及模块详细编码实现,让读者了解整合项目开发的整体流程。本书对框架的介绍通俗易懂,由浅入深,结合...
在手写Spring 源码的过程中会摘取整体框架中的核心逻辑,简化代码实现过程保留核心功能,例如:I0C、AOP、Bean生命周期、上下文、作用域、资源处理等内容实现。 能学到什么:①工厂模式、策略模式、观察者模式等都是...
MyBatis框架则作为持久层框架,简化了数据库操作,提高了开发效率。 JSP技术的运用则使得网站的前端页面动态化、个性化,能够根据用户的需求进行灵活展示。通过JSP标签库和EL表达式的使用,开发者能够轻松实现数据...
毕业设计,基于SpringBoot+mybatis-plus+MySql开发的众筹系统项目,内含Java完整源代码,数据库脚本 【毕业设计】【众筹系统项目】发布众筹项目->审核->上线->支持项目,基于springboot+mybatis-plus+oauth2+vue...
基于SSM框架的校园交易平台代码 | java | ssm| spring | springmvc | mybatis | 代码 | 网站 1、技术栈:微信小程序,springboot,uniapp,vue,ajax,maven,mysql,MyBatisPlus 2、系统的实现 用户信息 图片素材 ...
基于ssm框架的校园疫情管理系统代码 | java | ssm| spring | springmvc | mybatis | 代码 | 网站 1、技术栈:微信小程序,springboot,uniapp,vue,ajax,maven,mysql,MyBatisPlus 2、系统的实现 用户信息 图片...
OA系统可以实现更加简单、规范、高效地管理,提高企业的整体管理水平。 技术: 后端:spring + springmvc + mybatis 前端:bootstrap 数据库:mysql 开发环境: idea2018.25、jdk8、tomcat9、mysql...