当前位置: 首页 > news >正文

灵感集网站全球军事局势最新消息

灵感集网站,全球军事局势最新消息,找公司做网站需要咨询什么问题,佛山企业制作网站接上篇手写持久层框架#xff1a;https://blog.csdn.net/liwenyang1992/article/details/134884703 MyBatis源码 MyBatis架构原理主要组件 MyBatis架构设计 MyBatis架构四层作用是什么呢#xff1f; API接口层#xff1a;提供API#xff0c;增加、删除、修改、查询…接上篇手写持久层框架https://blog.csdn.net/liwenyang1992/article/details/134884703 MyBatis源码 MyBatis架构原理主要组件 MyBatis架构设计 MyBatis架构四层作用是什么呢 API接口层提供API增加、删除、修改、查询等接口通过API接口对数据库进行操作。 数据处理层主要负责SQL的 查询、解析、执行以及结果映射的处理主要作用解析SQL根据调用请求完成一次数据库操作。 框架支撑层负责通用基础服务支撑包含事务管理、连接池管理、缓存管理等共用组件的封装为上层提供基础服务支撑。 包路径org.apache.ibatis 包路径作用备注annotationsMapper映射器接口中使用到的注解bindingMapper映射器接口与映射语句关系绑定构建builderConfiguration配置的构建包cache缓存实现与定义包含一级/二级缓存cursor游标针对查询结果集的获取与遍历等datasource数据源/连接池exceptions异常包executor语句执行器包含参数/结果集/语句处理等io资源读取辅助包jdbcMyBatis内部的SQL脚本运行的测试包logging一套日志接口和适配器包mappingMapper映射器相关参数/语句/结果/类型等对象包parsingXML解析包例如#{}占位符解析plugin插件包reflection反射处理工具包scriptingSQL执行脚本的解析处理包session数据库连接会话核心包会话创建/管理/调用transaction事务type类型处理器定义bean与数据库类型的转换关系 XML映射器 MyBatis的真正强大在于它的语句映射这是它的魔力所在由于它的异常强大映射器的XML文件就显得相对简单。如果拿它跟具有相同功能的JDBC代码进行对比你会立即发现省掉了将近95% 的代码。MyBatis致力于减少使用成本让用户能更专注于 SQL 代码。 SQL 映射文件只有很少的几个顶级元素按照应被定义的顺序列出 cache该命名空间的缓存配置cache-ref引用其它命名空间的缓存配置。resultMap描述如何从数据库结果集中加载对象是最复杂也是最强人的元素sql可被其它语句引用的可重用语句块。insert映射插入语句。update映射更新语句delete映射删除语句。select映射查询语句。 select select元素允许你配置很多属性来配置每条语句的行为细节 selectidselectparameterTypeintresultTyperesultTyperesultMapresultMapflushCachefalseuseCachetruetimeout10fetchSize256statementTypePREPAREDresultSetTypeFORWARD_ONLY/selectinsert, update 和 delete 数据变更语句insert, update 和 delete 的实现非常接近 动态SQL 借助功能强大的基于OGNL的表达式MyBatis 3 替换了之前的大部分元素大大精简了元素种类 select idfindActiveBlogLikeresultTypeBlogSELECT * FROM BLOG WHERE state ‘ACTIVE’choosewhen testtitle ! nullAND title like #{title}/whenwhen testauthor ! null and author.name ! nullAND author_name like #{author.name}/whenotherwiseAND featured 1/otherwise/choose /selectXMLScriptBuilder public SqlSource parseScriptNode()方法 解析select、insert、update、delete标签中的SQL语句最终将解析到的SqlNode封装到MixedSqlNode中的List集合中 将带有${}号的SQL信息封装到TextSqlNode将带有#{}号的SQL信息封装到StaticTextSqlNode将动态SQL标签中的SQL信息分别封装到不同的SqlNode中如果SQL中包含${}和动态SQL语句则将SqlNode封装到DynamicSqlSource 相关类与接口 DefaultSqlSession SqlSession接口的默认实现类 Executor接口 BaseExecutor基础执行器封装了子类的公共方法及公共变量包括一级缓存、延迟加载、回滚、关闭等功能 SimpleExecutor简单执行器每执行一条SQL都会打开一个 Statement执行完成后关闭 ReuseExecutor重用执行器相较于 SimpleExecutor多了 Statement 的缓存功能其内部维护一个MapString, Statement每次编译完成的Statement 都会进行缓存不会关闭 BatchExecutor批量执行器基于JDBC的addBatch、executeBatch功能并且在当前SQL和上一条SQL完全一样的时候重用Statement在调用doFlushStatements的时候将数据刷新到数据库 CachingExecutor缓存执行器装饰器模式在开启缓存的时候。会在上面三种执行器的外面包上 CachingExecutor 缓存执行过程 SimpleExecutor#doQuery BaseStatementHandler基础语句处理器抽象类它基本把语句处理器接口的核心部分都实现了包括配置绑定、执行器绑定、映射器绑定、参数处理器构建、结果集处理器构建、语句超时设置、语句关闭等并另外定义了新的方法 instantiateStatement供不同子类实现以使获取不同类型的语句连接子类可以普通执行 SQL语句也可以做预编译执行还可以执行存储过程等SimpleStatementHandler普通语句处理器继承BaseStatementHandler抽象类对应 java.sql.Statement 对象的外理处理普通的不带动态参数运行的SQL即执行简单拼接的字符串语句同时由于 Statement 的特性SimpleStatementHandler 每次执行都需要编译 SQL**注意我们知道 SQL 的执行是需要编译和解析的。**PreparedStatementHandler预编译语句处理器继承BaseStatementHandler抽象类对应 java.sql.PrepareStatement 对象的处理相比上面的普通语句处理器它支持可变参数 SQL执行由于 PrepareStatement 的特性它会进行预编译在缓存中一旦发现有预编译的命令会直接解析执行所以减少了再次编译环节能够有效提高系统性能并预防 SQL 注入攻击**所以是系统默认也是我们推荐的语句处理器**CallableStatementHandler存储过程外理器继承BaseStatementHandler抽象类对应 java.sql.CallableStatement 对象的处理很明了它是用来调用存储过程的增加了存储过程的函数调用以及输出/输入参数的处理支持。RoutingStatementHandler路由语句处理器直接实现了 StatementHandler 接口作用如其名称确确实实只是起到了路由功能并把上面介绍到的三个语句处理器实例作为自身的委托对象而已所以执行器在构建语句处理器时都是直接 new了RoutingStatementHandler实例。 附件中包含测试用例代码可设置jdk17调试运行带注解。
http://www.pierceye.com/news/420385/

相关文章:

  • 企业网站的运营如何做秦皇岛网站制作与网站建设
  • 潍坊 营销型网站建设室内设计和装修设计
  • 滕州市东方建设工程事务有限公司网站房房网
  • php网站漂浮广告代码百度一下打开网页
  • 华为公司网站建设方案模板自己做网站的费用
  • 网站设计命名规范广州短视频内容营销平台
  • 天津专门做网站的公司成都市城乡建设局网站
  • 品牌网站升级wordpress 4.9中文
  • 网站搭建软件广告标识标牌制作公司
  • 做造价在哪个网站查价格微信小程序是什么语言开发的
  • 网站建设平台接单做电子商务平台网站需要多少钱
  • 甘肃网站seo技术厂家企业简介内容
  • 视觉中国设计网站做音乐网站
  • 金坛区建设工程质量监督网站西宁百姓网免费发布信息
  • 运维 网站开发网站如何引入流量
  • 网站建设泉州效率网络西安网站设计公司哪家好
  • 青羊建站报价网上能注册公司吗怎么注册
  • 免费网站虚拟主机整站seo技术搜索引擎优化
  • 青岛网站建设订做油画风网站
  • 网站备案名称的影响吗六安哪里有做推广网站
  • 网站建设策划书网站发布与推广长沙公司网站费用
  • 设计网页英语口碑优化seo
  • 试客那个网站做的好北京做软件开发的公司
  • 网站多套系统如何调用网页大图素材
  • 沧州网站建设方案咨询wordpress需要 伪静态
  • 安徽省住房和城乡建设部网站郑州百姓网免费发布信息
  • 电子商务网站开发是指聊城市城乡建设部网站查询
  • 聊天室网站模板国内市场调研公司
  • 网站做不做备案有什么区别网站媒体给房开做内容推广
  • 昆明专业网站建设模板蚌埠app制作公司