Mybatis源码

news2024/11/17 20:49:28

Mybatis简介

    持久层ORM框架,执行sql比较简单,扩展性强,与传统jdbc相比,省去了手写连接的几个步骤,可以通过配置。 节约数据库连接资源,代码易于维护。
     mybatis 在SqlMapConfig.xml 中配置数据库连接池,用于管理数据库连接
     采用xxmapper.xml文件与java代码分离,易于维护
     传参方便,使用占位符 #{} 传参,一一对应
     映射结果为Map或者对象使用方便

Mybatis整体体系图

在这里插入图片描述
分为3层,接口层,数据处理层,基础支持层

  执行sql的简单示例分为以下几步:
  
   1. 从配置文件获取sqlsessionFactory
   2. sqlsessionFactory 获取 sqlsession
   3. sqlsession 进行crud 和事务操作
   4.  执行相关操作以及关闭session

源码解析流程图

请添加图片描述
总结:
对应mybatis启动流程(获取sqlsession的过程)这边简单如下:

sqlsessionFactoryBuilder解析配置文件,包括属性配置,别名配置,拦截器配置,环境(数据源和事务管理器),mapper管理器,解析完这些配置会生成一个configuration对象,包含mybatis 需要解析的所有配置,创建sqlsessionfactory对象,包含这些配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/554848.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【服务器数据恢复】raid离线磁盘上线失败导致分区不识别的数据恢复

服务器数据恢复环境: HP ProLiant DL某系列服务器,三块SAS硬盘组建raid阵列。 上层系统部署有数据库,数据库存放在D分区,备份存放在E分区。 服务器故障: 磁盘故障导致RAID瘫痪,其中一块硬盘状态灯显示红色…

接口测试:Eolink Apikit 和 Postman 哪个更好用?

接口测试:Eolink Apikit 和 Postman 哪个更好用? 很多做服务端开发的同学,应该基本都用过 Postman 来测试接口,虽然 Postman 能支撑日常工作,但是总感觉还是少了点什么,比如需要 Swagger 来维护接口文档&am…

故障分析 | innodb_thread_concurrency 导致数据库异常的问题分析

作者通过分析源码定位数据库异常,梳理参数 innodb_thread_concurrency 设置的注意事项。 作者:李锡超 一个爱笑的江苏苏宁银行数据库工程师,主要负责数据库日常运维、自动化建设、DMP 平台运维。擅长 MySQL、Python、Oracle,爱好骑…

【coding加油站】vue单页面手机商城设计

1、引言 设计结课作业,课程设计无处下手,网页要求的总数量太多?没有合适的模板?数据库,java,python,vue,html作业复杂工程量过大?毕设毫无头绪等等一系列问题。你想要解决的问题&am…

【Python】判断语句 ② ( if else 语句 | if else 语句语法 | Python 中的空格缩进 | 代码示例 )

文章目录 一、if else 语句语法二、Python 中的空格缩进三、代码示例 一、if else 语句语法 if else 语句语法 : if 条件判定:满足条件要执行的代码1满足条件要执行的代码2满足条件要执行的代码3 else:不满足条件要执行的代码1不满足条件要执行的代码2不满足条件要执行的代码3…

佳能打印机删掉又会自动加载的原因及解决方案

驱动人生分析出现佳能打印机删掉又会自动加载的原因可能是因为在系统中,存在着佳能打印机的自动驱动程序。将打印机删除后,系统会自动重新安装该驱动程序,导致打印机重新加载。 特别在一台新的佳能打印机设备到位时,也会出现电脑…

2023自动化测试工具还有什么新鲜事?

我们准备了一份详细指南,介绍了在一个好的测试自动化工具中应该寻找什么,以及哪些工具在 2023 年值得考虑。 尽管手动测试仍然是软件质量保证的强大工具,正如我们在最近关于手动测试与自动测试的长期阅读中再次确立的那样,越来越…

1700页,卷S人的 软件测试《八股文》PDF手册,涨薪跳槽拿高薪就靠它了

大家好,最近有不少小伙伴在后台留言,又得准备面试了,不知道从何下手! 不论是跳槽涨薪,还是学习提升!先给自己定一个小目标,然后再朝着目标去努力就完事儿了! 为了帮大家节约时间&a…

【Linux】权限管理,谁动了我代码?!

目录 一,shell命令以及运行原理 二 ,Linux用户权限 1. su —— 用户切换 三,权限管理 1. 理解 2. 用户 3. 文件类型 4. 文件基本权限 5. 设置文件权限方法 1. chmod —— 修改文件访问权限 2. chown —— 修改文件拥有者 3. chg…

2023年5大风口行业

今天就来和大家分享一下,在时代的洪流下,普通人如何顺应大势抓住机遇! 实现人在风口上,猪都会飞起来。 根据对市场的观察及各平台数据分析结果,小编总结了了2023年将会迎来大爆发的5个行业,带大家看看新的…

最近公司招人面试了一位5年的测试,一问三不知,最后还反怼我...

最近看了很多简历,很多候选人年限不小,但是做的都是一些非常传统的项目,想着也不能通过简历就直接否定一个人,何况现在大环境越来 越难,大家找工作也不容易,于是就打算见一见。 在沟通中发现,由…

xxl-sso 单点登录

目录 1 项目启动修改Host文件运行路径SSO登录/注销流程验证 2 分析登录流程 单点登录原理及简单实现:https://www.cnblogs.com/ywlaker/p/6113927.html xxl-sso是一款基于redis轻量级分布式高可用的SSO实现组件,支持web端(Cookie实现)和app端(Token实现)两种方式,两…

[WGAN] Wasserstein GAN

看这个解析讲的也挺好的:令人拍案叫绝的Wasserstein GAN - 知乎 1、背景 GAN的训练是delicate和unstable的。需要定义一个连续的距离,来衡量模型distribution和真实distribution之间的差异。 2、贡献 提出了Wasserstein-GAN,用Earth Mover (…

常用五大类RFID系统,实践领域广泛,加强现代化管理

随着信息技术的不断进步,RFID技术已逐渐成为企业管理及社会服务领域中不可或缺的一种重要技术手段。根据其不同的应用场景,RFID技术广泛应用于药品监管、固定资产管理、仓储管理、智慧工厂和消费服务等领域。本文将从五个方面介绍常用的RFID系统。 一、…

Linux Ubuntu配置Anaconda与Python的方法

本文介绍在Linux Ubuntu操作系统的电脑中,安装Anaconda环境与Python语言的方法。 在之前的文章Win10中Anaconda及Python的下载与安装方法(https://blog.csdn.net/zhebushibiaoshifu/article/details/122642187)中,我们介绍了在Win…

【资料分享】高边、低边晶体管开关及电路解析

高边和低边晶体管开关 电路中,晶体管常常被用来当做开关使用。晶体管用作开关时有两种不同的接线方式:高边(high side)和低边(low side)。 高边和低边是由晶体管在电路中的位置决定的。晶体管可以是双极性晶体管(BJT…

云性能测试的主要意义是什么?

云性能测试是一种基于云计算技术的性能测试方法,其通过在云端部署测试环境和测试工具,将测试结果反馈给用户,从而帮助用户评估系统的稳定性、性能和可靠性,那云性能测试的主要意义是什么? 一、作用 云性能测试可以帮助…

测试跳槽一次涨4k,我5年跳了3次...

最近有人说,现在测试岗位初始工资太低了,有些刚刚入行的程序员朋友说自己工资连5位数都没有.....干了好几年也没怎么涨。看看别人动辄月薪1.5到2万,其实我想说也没那么难。 说下如何高效地拿到2万的工资,总体来说,就靠…

了解预测性维护:从哪些方面入手?

预测性维护(Predictive Maintenance)是一种基于数据分析和先进技术的维护策略,旨在提前预测设备故障,并在故障发生之前采取适当的维护措施。相比传统的定期维护或纠正性维护,预测性维护能够降低维护成本、提高设备可用…

在行 | 唱响钢铁冶金行业绿色发展进行曲

在行业现场解析行业难题, 用主题方案创新数智价值。 中国是世界第一钢铁冶金大国,钢铁产量接近全球的一半,高产量也带来了高碳排,仅钢铁行业的碳排量,已占全球钢铁碳排放总量的60%以上,占全国碳排放总量的…