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

o2o网站建设策划开发网站网页归档

o2o网站建设策划,开发网站网页归档,有没有做gif的专门网站,重庆公众号开发服务文章目录 MyBatis的功能架构是怎样的把Mybatis的功能架构分为三层#xff1a; **MyBatis的框架架构设计**是怎么样的架构图如下Mybatis都有哪些Executor执行器#xff1f;它们之间的区别是什么#xff1f;Mybatis中如何指定使用哪一种Executor执行器#xff1f; MyBatis的功… 文章目录 MyBatis的功能架构是怎样的把Mybatis的功能架构分为三层 **MyBatis的框架架构设计**是怎么样的架构图如下Mybatis都有哪些Executor执行器它们之间的区别是什么Mybatis中如何指定使用哪一种Executor执行器 MyBatis的功能架构是怎样的 把Mybatis的功能架构分为三层 API接口层提供给外部使用的接口API开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。 数据处理层负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。 基础支撑层负责最基础的功能支撑包括连接管理、事务管理、配置加载和缓存处理这些都是共用的东西将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。 MyBatis的框架架构设计是怎么样的 架构图如下 这张图从上往下看。MyBatis的初始化会从mybatis-config.xml配置文件解析构造成Configuration这个类就是图中的红框。 (1)加载配置配置来源于两个地方一处是配置文件一处是Java代码的注解将SQL的配置信息加载成为一个个MappedStatement对象包括了传入参数映射配置、执行的SQL语句、结果映射配置存储在内存中。 (2)SQL解析当API接口层接收到调用请求时会接收到传入SQL的ID和传入对象可以是Map、JavaBean或者基本数据类型Mybatis会根据SQL的ID找到对应的MappedStatement然后根据传入参数对象对MappedStatement进行解析解析后可以得到最终要执行的SQL语句和参数。 (3)SQL执行将最终得到的SQL和参数拿到数据库进行执行得到操作数据库的结果。 (4)结果映射将操作数据库的结果按照映射的配置进行转换可以转换成HashMap、JavaBean或者基本数据类型并将最终结果返回。 为什么需要预编译 定义 SQL 预编译指的是数据库驱动在发送 SQL 语句和参数给 DBMS 之前对 SQL 语句进行编译这样 DBMS 执行 SQL 时就不需要重新编译。 为什么需要预编译 JDBC 中使用对象 PreparedStatement 来抽象预编译语句使用预编译。预编译阶段可以优化 SQL 的执行。预编译之后的 SQL 多数情况下可以直接执行DBMS 不需要再次编译越复杂的SQL编译的复杂度将越大预编译阶段可以合并多次操作为一个操作。同时预编译语句对象可以重复利用。把一个 SQL 预编译后产生的 PreparedStatement 对象缓存下来下次对于同一个SQL可以直接使用这个缓存的 PreparedState 对象。Mybatis默认情况下将对所有的 SQL 进行预编译。 Mybatis都有哪些Executor执行器它们之间的区别是什么 Mybatis有三种基本的Executor执行器SimpleExecutor、ReuseExecutor、BatchExecutor。 SimpleExecutor每执行一次update或select就开启一个Statement对象用完立刻关闭Statement对象。 ReuseExecutor执行update或select以sql作为key查找Statement对象存在就使用不存在就创建用完后不关闭Statement对象而是放置于MapString, Statement内供下一次使用。简言之就是重复使用Statement对象。 BatchExecutor执行update没有selectJDBC批处理不支持select将所有sql都添加到批处理中addBatch()等待统一执行executeBatch()它缓存了多个Statement对象每个Statement对象都是addBatch()完毕后等待逐一执行executeBatch()批处理。与JDBC批处理相同。 作用范围Executor的这些特点都严格限制在SqlSession生命周期范围内。 Mybatis中如何指定使用哪一种Executor执行器 在Mybatis配置文件中在设置settings可以指定默认的ExecutorType执行器类型也可以手动给DefaultSqlSessionFactory的创建SqlSession的方法传递ExecutorType类型参数如SqlSession openSession(ExecutorType execType)。 配置默认的执行器。SIMPLE 就是普通的执行器REUSE 执行器会重用预处理语句prepared statements BATCH 执行器将重用语句并执行批量更新。 Mybatis是否支持延迟加载如果支持它的实现原理是什么 Mybatis仅支持association关联对象和collection关联集合对象的延迟加载association指的就是一对一collection指的就是一对多查询。在Mybatis配置文件中可以配置是否启用延迟加载lazyLoadingEnabledtrue|false。 它的原理是使用CGLIB创建目标对象的代理对象当调用目标方法时进入拦截器方法比如调用a.getB().getName()拦截器invoke()方法发现a.getB()是null值那么就会单独发送事先保存好的查询关联B对象的sql把B查询上来然后调用a.setB(b)于是a的对象b属性就有值了接着完成a.getB().getName()方法的调用。这就是延迟加载的基本原理。 当然了不光是Mybatis几乎所有的包括Hibernate支持延迟加载的原理都是一样的。
http://www.w-s-a.com/news/843776/

相关文章:

  • 临沂网站建设价格太原网站优化公司
  • 网页设计基础课程设计搜索引擎优化英文
  • 网站备案号怎么查楼书设计素材网站
  • 网站设计机构有哪些中国建设银行网站登录不上
  • 烟台理工学校网站罗湖建设网站
  • 卑鄙的网站开发公司郑州人才网站
  • 成都专业的网站设计公司文化建设的成就
  • 做书籍封皮的网站如何建网站教程视频
  • 唐山建站公司模板ipfs做网站
  • 贵阳做网站品牌网站模板
  • 紫网站建设我的个人博客
  • 优秀网站菜单网页上的视频怎么下载
  • 龙口建网站公司价格国内的平面设计网站
  • 电子商务网站建设与管理读后感上海市基础工程公司
  • 织梦免费企业网站做网站时,404网页如何指向
  • 摄影工作室网站源码百度为什么会k网站
  • 哪个网站有淘宝做图的素材网站分享做描点链接
  • 做哪个网站零售最好网站空间在哪里
  • 荆州网站建设多少钱南阳做网站推广
  • 网站代理打开个人网站设计源码
  • 做php网站的话要学什么语言wordpress搜索不到
  • 金华官方网站建设网络营销策划模板
  • 网站开发到上线在线生成小程序
  • 动易网站设计方案郑州营销网站建设
  • 怎么上网站做简易注销的步骤郑州大学现代远程教育《网页设计与网站建设》课程考核要求
  • 新乡网站建设新乡长沙本地论坛有哪些
  • 潍坊中企动力做的网站怎么样wordpress接入微博
  • 网站开发者所有权归属网站项目建设的必要性
  • 菜鸟网站编程广州网站设计权威乐云践新
  • 网站做接口到app 价格大地资源免费视频观看