当前位置: 首页 > news >正文 房屋中介做网站的小网站托管费用 news 2025/11/3 8:58:25 房屋中介做网站的,小网站托管费用,网站功能价格表,wordpress 短代码插件前言 MyBatis是一款ORM#xff08;Object-Relational Mapping#xff09;框架#xff0c;其主要用于将Java对象与关系数据库之间进行映射#xff0c;凭借其轻量性、稳定性以及广泛的开源社区其受到了广大开发者的追捧。 那MyBatis为我们做了哪些事情呢#xff1f;其实Object-Relational Mapping框架其主要用于将Java对象与关系数据库之间进行映射凭借其轻量性、稳定性以及广泛的开源社区其受到了广大开发者的追捧。 那MyBatis为我们做了哪些事情呢其实总结来看主要有如下几点 SQL映射配置MyBatis使用XML或注解配置文件来定义SQL查询、插入、更新和删除操作以及与数据库表之间的映射关系。这使得开发者能够将SQL语句与Java代码分离提高了代码的可维护性。动态SQLMyBatis支持动态SQL允许根据不同的条件生成不同的SQL语句。这使得构建复杂的查询变得更加灵活和方便。参数映射MyBatis能够将Java对象的属性与SQL语句中的参数进行映射无需手动编写繁琐的参数传递代码。结果集映射MyBatis支持将SQL查询结果映射到Java对象自动将数据库表中的列值赋给Java对象的属性大大简化了数据的读取和处理。事务管理MyBatis可以与Java的事务管理框架如Spring无缝集成确保数据库操作的原子性和一致性。连接池集成MyBatis可以与常见的Java连接池库如Apache DBCP、C3P0、HikariCP集成以管理数据库连接的获取和释放。二级缓存MyBatis支持二级缓存可以在多个会话之间共享数据提高性能。 知晓了MyBatis的功能特性后接下来让我们一起来看看MyBatis内部是通过哪些组件来支撑起这些功能的。 总览MyBatis 对于Mybatis的架构大致可以分为三层基础支持层、核心处理层和接口层。 或许你会觉得上图过于复杂难以理解。如果此刻你也有这样的疑惑不要慌。不妨跟着笔者思路来进行梳理。 首先使用MyBatis概括来看大致包括如下几步 定义接口配置相关的xml文件信息加载接口的配置文件解析相关配置文件生成接口代理类执行相关sql 由于在使用MyBatis过程中会编写相关的配置文件所以Mybatis内部必然需要相应组件来支撑配置文件的解析这些也就构成了底层的基础支撑层。既然会解析配置文件那是不是必然会涉及到资源加载、配置解析等模块 进一步当配置文件解析完成后下一步就是生成代理然后执行sql此时所涉及的也就是核心处理层中的sql执行sql解析等。更进一步执行sql过程中为了避免Connection频繁创建是不是需要对连接进行池化操作所以MyBatis内部会抽象出一个数据源模块来统一管理连接。 除此之外对于sql执行过程中的事务是不是也需要控制所以MyBatis还有事务管理模块来对sql执行过程中的事务进行管理。 事实上你只需要记住Mybatis的使用过程为定义接口提供配置文件而后生成代理执行Sql 即可。以此进行发散自然而然能扩展出上图所示内容根本没必要死记硬背。 熟悉了MyBatis的整体架构后我们接下来看Mybatis内部执行sql的大致流程 接下来我们将主要围绕这张图中内容进行总结分析。 配置文件解析 配置文件解析过程大致如下所示 事实上MyBatis内部对于配置文件解析的过程可以概括如下 加载配置文件MyBatis首先加载主配置文件通常是mybatis-config.xml并创建一个Configuration对象来表示整个MyBatis配置。解析主配置文件MyBatis使用XML解析器解析主配置文件该文件包含了关于数据源、插件、类型别名、缓存等全局配置信息。这些配置会被存储在Configuration对象中。 而参与配置文件解析的都继承与BaseBuilder其体系结构如下所示 其中 XMLStatementBuilder这个类用于解析映射文件中的 select、insert、update 和 delete 等标签构建与 SQL 语句相关的对象如 MappedStatement包括 SQL 语句的解析、参数映射、结果映射等。XMLMapperBuilderXMLMapperBuilder 用于解析映射文件通常是 Mapper.xml 文件负责构建与映射文件相关的对象包括映射文件的解析、SQL 语句的构建、参数映射、结果映射、缓存配置等。XMLConfigBuilderXMLConfigBuilder 用于解析主配置文件通常是 mybatis-config.xml 文件负责构建与全局配置相关的对象包括数据源配置、类型别名配置、插件配置、缓存配置等。 总结来看对于MyBatis的加载过程来说其在处理配置文件信息时首先会传递配置文件所在位置信息然后再调用框架提供的SqlSessionFactory的build方法便会根据传入路径信息去加载相关的配置文件并进行解析。而解析的内容会存放到的configuration之中进而方便后续组件的使用。 代理构建 当配置文件解析下一步就是通过SqlSession的getMapper方法来构建一个接口对应的代理类这一过程大致如下 这一过程中涉及的组件主要包括MapperProxyFactory、MapperRegistry、MapperProxy更加详细的分析可参考Mybatis流程分析(六): Mybatis中方法和sql语句的桥梁——MapperProxy 总之这一过程的本质就是通过Jdk动态代理的方式返回一个实现接口的实例对象 sql执行 当配置文件解析完成接口相应的代理类构建完毕后下一步要做的就是sql的执行这一过程逻辑大致如下所示 这一部分的底层逻辑就是原生JDBC操纵数据库的那一套逻辑即 创建SQL语句即创建Statement、PreparedStatement或CallableStatement对象分别用于执行不同类型的SQL语句。执行SQL查询使用创建的Statement或PreparedStatement对象来执行SQL查询。处理查询结果通过ResultSet对象来处理查询的结果数据。 总结 最后我们再来一下Mybatis内部对于sql执行的大致步骤 创建 SqlSessionFactory使用Mybatis首先需要创建一个 SqlSessionFactory 对象这通常通过读取MyBatis 的主配置文件mybatis-config.xml并使用 SqlSessionFactoryBuilder 来实现。SqlSessionFactory 负责创建数据库连接和 SqlSession 对象。创建 SqlSession通过 SqlSessionFactory 创建一个 SqlSession 对象。SqlSession 代表了与数据库的一次会话它可以执行 SQL 操作并管理数据库连接。通常每个线程都会创建自己的 SqlSession。执行 SQL 语句在 SqlSession 中通过调用方法执行 SQL 语句。MyBatis 支持多种方式来执行 SQL包括 selectOne()、selectList()、insert()、update()、delete() 等方法。SQL 语句解析MyBatis 会解析 SQL 语句包括动态 SQL参数映射和结果映射。这包括了将 Java 对象转化为 SQL 语句中的参数以及将查询结果映射回Java对象。执行 SQLMyBatis 将 SQL 语句发送到数据库并执行相应的操作如查询、插入、更新或删除。数据库返回结果或受影响的行数这取决于SQL语句的类型。处理结果MyBatis 最终会将SQL的执行结果映射为 Java 对象然后返回给调用者。映射过程通常基于映射文件中的配置。结果集的处理包括将数据库查询结果映射为 Java 对象的属性值。 进一步上述步骤可总结概括总结为如下的流程。 文章转载自: http://www.morning.ryrpq.cn.gov.cn.ryrpq.cn http://www.morning.hwsgk.cn.gov.cn.hwsgk.cn http://www.morning.pzbqm.cn.gov.cn.pzbqm.cn http://www.morning.tztgq.cn.gov.cn.tztgq.cn http://www.morning.2d1bl5.cn.gov.cn.2d1bl5.cn http://www.morning.yhplt.cn.gov.cn.yhplt.cn http://www.morning.jwncx.cn.gov.cn.jwncx.cn http://www.morning.zqzhd.cn.gov.cn.zqzhd.cn http://www.morning.klpwl.cn.gov.cn.klpwl.cn http://www.morning.inheatherskitchen.com.gov.cn.inheatherskitchen.com http://www.morning.hbtarq.com.gov.cn.hbtarq.com http://www.morning.hxwhyjh.com.gov.cn.hxwhyjh.com http://www.morning.ckhry.cn.gov.cn.ckhry.cn http://www.morning.jmbgl.cn.gov.cn.jmbgl.cn http://www.morning.kwfnt.cn.gov.cn.kwfnt.cn http://www.morning.jrqw.cn.gov.cn.jrqw.cn http://www.morning.qynnw.cn.gov.cn.qynnw.cn http://www.morning.ldmtq.cn.gov.cn.ldmtq.cn http://www.morning.tdwjj.cn.gov.cn.tdwjj.cn http://www.morning.pcqdf.cn.gov.cn.pcqdf.cn http://www.morning.xbrxk.cn.gov.cn.xbrxk.cn http://www.morning.dyxzn.cn.gov.cn.dyxzn.cn http://www.morning.kwksj.cn.gov.cn.kwksj.cn http://www.morning.xbwqg.cn.gov.cn.xbwqg.cn http://www.morning.smmrm.cn.gov.cn.smmrm.cn http://www.morning.rhchr.cn.gov.cn.rhchr.cn http://www.morning.mgkcz.cn.gov.cn.mgkcz.cn http://www.morning.qdrhf.cn.gov.cn.qdrhf.cn http://www.morning.wbnsf.cn.gov.cn.wbnsf.cn http://www.morning.rqsr.cn.gov.cn.rqsr.cn http://www.morning.rxcqt.cn.gov.cn.rxcqt.cn http://www.morning.mlckd.cn.gov.cn.mlckd.cn http://www.morning.qrzqd.cn.gov.cn.qrzqd.cn http://www.morning.ttfh.cn.gov.cn.ttfh.cn http://www.morning.snyqb.cn.gov.cn.snyqb.cn http://www.morning.cwrnr.cn.gov.cn.cwrnr.cn http://www.morning.kzpxc.cn.gov.cn.kzpxc.cn http://www.morning.fbdtd.cn.gov.cn.fbdtd.cn http://www.morning.gcqkb.cn.gov.cn.gcqkb.cn http://www.morning.rmqmc.cn.gov.cn.rmqmc.cn http://www.morning.hryhq.cn.gov.cn.hryhq.cn http://www.morning.xbmwm.cn.gov.cn.xbmwm.cn http://www.morning.ltcnd.cn.gov.cn.ltcnd.cn http://www.morning.dkqr.cn.gov.cn.dkqr.cn http://www.morning.twwts.com.gov.cn.twwts.com http://www.morning.cxlys.cn.gov.cn.cxlys.cn http://www.morning.mmsf.cn.gov.cn.mmsf.cn http://www.morning.pwggd.cn.gov.cn.pwggd.cn http://www.morning.lmmyl.cn.gov.cn.lmmyl.cn http://www.morning.mprtj.cn.gov.cn.mprtj.cn http://www.morning.pdkht.cn.gov.cn.pdkht.cn http://www.morning.dtnzk.cn.gov.cn.dtnzk.cn http://www.morning.litao4.cn.gov.cn.litao4.cn http://www.morning.wpqcj.cn.gov.cn.wpqcj.cn http://www.morning.hxlch.cn.gov.cn.hxlch.cn http://www.morning.rgyts.cn.gov.cn.rgyts.cn http://www.morning.sfrw.cn.gov.cn.sfrw.cn http://www.morning.mhmsn.cn.gov.cn.mhmsn.cn http://www.morning.qmtzq.cn.gov.cn.qmtzq.cn http://www.morning.mbmtz.cn.gov.cn.mbmtz.cn http://www.morning.jgncd.cn.gov.cn.jgncd.cn http://www.morning.zgqysw.cn.gov.cn.zgqysw.cn http://www.morning.mttqp.cn.gov.cn.mttqp.cn http://www.morning.hwtb.cn.gov.cn.hwtb.cn http://www.morning.tyrlk.cn.gov.cn.tyrlk.cn http://www.morning.vjwkb.cn.gov.cn.vjwkb.cn http://www.morning.xrnh.cn.gov.cn.xrnh.cn http://www.morning.mhcft.cn.gov.cn.mhcft.cn http://www.morning.skbhl.cn.gov.cn.skbhl.cn http://www.morning.qfgxk.cn.gov.cn.qfgxk.cn http://www.morning.dwgcx.cn.gov.cn.dwgcx.cn http://www.morning.spnky.cn.gov.cn.spnky.cn http://www.morning.pznqt.cn.gov.cn.pznqt.cn http://www.morning.pwqyd.cn.gov.cn.pwqyd.cn http://www.morning.qwhbk.cn.gov.cn.qwhbk.cn http://www.morning.mcjyair.com.gov.cn.mcjyair.com http://www.morning.wmhqd.cn.gov.cn.wmhqd.cn http://www.morning.qqhfc.cn.gov.cn.qqhfc.cn http://www.morning.rtsd.cn.gov.cn.rtsd.cn http://www.morning.lwmxk.cn.gov.cn.lwmxk.cn 查看全文 http://www.tj-hxxt.cn/news/273300.html 相关文章: 网站开发一般会用到什么语言西安网站建设有那些公司好 自贸区网站建设微信小程序代码生成器 品牌排名网站秦皇岛黄金海岸潮汐表 写着网站建设图片拼多多 wordpress 网站免费空间免备案怎样把自己的产品放到网上销售 wordpress 图片 说明 居中宜春seo网站推广 大型大型网站制作wordpress登录下载附件 寿光建设银行光明路网站手机可以看的网站 珠海左右创意园网站开发网站设计与建设考试 php怎么网站开发低代码开发app 域名跟空间都有了怎么做网站广州建网站白云区 好的策划方案网站企业做网站的费用计入什么科目 网站做授权登录网店美工设计实训步骤 网站建设常用的6大布局加代码国产服务器厂商排名 天猫店铺申请条件及费用提升seo搜索排名 网站建设教程学校wordpress getuser 网站审核时间求个没封的w站2022 wordpress门户网站主题网站怎么做留言 做网站页面的软件公司注册资金最新规定 wordpress开发视频网站dede批量建站 做网站用什么技术好做免费网站安全吗 网站开发企业需要什么资质WordPress 建电商网站 西红门网站建设扬中市做网站 怎么做网站xml地图手动清理wordpress缓存 怎么做阿里巴巴国际网站首页企帮手logo设计官网 做调查问卷赚钱的网站wordpress先使用说明 万网免费网站建筑设计公司资质等级 专业型网站和个人网站设计网站合集的网站 呼伦贝尔哪里做网站企业怎么做网站建设 网络网站排名优化网站源代码在哪里