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

做简单网站需要学什么软件有哪些内容青岛关键词排名推广

做简单网站需要学什么软件有哪些内容,青岛关键词排名推广,wordpress手机mip,建设网站改版(一)执行流程 mybatis-config.xml核心配置文件的作用: 在MyBatis框架的核心配置文件中需要去指定当前的环境配置、指定需要操作的是哪个数据库,并且输入当前的用户名与密码,只有配置了他才能真正操作数据库。同时还去加载了SQL映射文件&#…

(一)执行流程

在这里插入图片描述
在这里插入图片描述

  1. mybatis-config.xml核心配置文件的作用:
    在MyBatis框架的核心配置文件中需要去指定当前的环境配置、指定需要操作的是哪个数据库,并且输入当前的用户名与密码,只有配置了他才能真正操作数据库。同时还去加载了SQL映射文件,有两种配置方法,一种是直接指定当前映射文件;一种是指定当前的包名,相当于设置一个扫描包,用于直接加载该包下的所有mapper映射文件。
    在这里插入图片描述
  2. 创建SqlSession
    MyBatis主要通过一个SqlSession对象去操作数据库,我们通过SqlSessionFactory会话工厂来创建该对象。在SqlSession中就包含了所有执行SQL语句的方法,他才是真正与数据库打交道的对象,并且每次操作一次生成一次会话,总共会生成多个。
  3. Executor执行器
    用于封装之前学习过的JDBC操作,是真正去操作数据库的接口,还要负责查询缓存的维护(查询缓存指的是后面要学的一级缓存与二级缓存)
  4. MappedStatement对象
    要想操作数据库就需要去定义一个mapper接口并编写mapper接口的映射文件,在xml映射文件中往往定义了许多标签信息:方法类型(如select)、方法id(对应mapper接口中的方法名称)、方法返回值resultType、SQL语句等等,这些标签信息都是由MappedStatement对象来读取与存储的
    在这里插入图片描述
  5. 参数类型转换
    在真正操作数据库之前还需要去处理参数的类型,需要把传入的这些参数(map、list、string、integer、pojo)转换成数据库所支持的类型
  6. 结果处理
    在操作完数据库之后就需要将得到的数据类型转换为java中的类型

总结:

在这里插入图片描述

(二)延迟加载使用及原理

在这里插入图片描述
延迟加载(也称按需加载)的前提:
可以看到在用户表中封装了orderList订单列表,它对应的就是订单信息表中属于该用户的数据
在这里插入图片描述

一、延迟加载的使用

(1)打开Demo类来进行测试
①立即加载

准备一张user用户表与order订单表
在这里插入图片描述
定义UserMapper.xml映射文件,在定义resultMap返回值当中又嵌套查询了order订单
在这里插入图片描述
在这里插入图片描述
执行测试方法,发现能够同时查询到User信息与Order订单数据
在这里插入图片描述
在这里插入图片描述
可以看到此时的查询情况是符合立即加载的(也就是在查询用户信息时同时将订单信息也查询了出来)

②延迟加载
  1. 改造UserMapper.xml映射文件
    在resultMap属性中指定fetchType,lazy指的就是延迟加载
    在这里插入图片描述
  2. 重新测试
    在这里插入图片描述
    可以看到此时在查询用户信息时并没有同时去查询订单信息,而是等到调用查询订单信息的方法时才去执行SQL逻辑,这也就是延迟加载
③局部与全局的延迟加载

此处fetchType只是局部修改,也就是只有在执行当前这块查询时才会有延迟加载的效果
在这里插入图片描述
也可以去开启全局的延迟加载:
需要在mybatis.config.xml映射文件中开启lazyLoadingEnabled开关
在这里插入图片描述

二、延迟加载的原理

在这里插入图片描述
若使用的是延迟加载,那么在第一次判断orderList的值是它是必定为空的

核心:使用的是CGLIB来创建目标延迟加载对象的代理对象

三、总结

在这里插入图片描述

(三)一级缓存与二级缓存

在这里插入图片描述
一级缓存与二级缓存都是基于本地缓存的,而一级缓存相较二级缓存的作用域较小,但是这两种缓存的基本思路都与上图相同,不同的是在不同作用于下保存数据的时机不同。
接下来就要来讲解一级与二级缓存的缓存效果:

(1)一级缓存

在这里插入图片描述
可以看到此时两次查询的都是相同的user对象,在第一次查询时就会把数据保存在本地缓存(也就是HashMap)中,当第二次查询时就不会再去执行SQL语句了
使用一段测试代码来验证:
在这里插入图片描述
执行测试方法,发现虽然打印了两次查询结果,但是实际执行的SQL语句只有一次,说明他把查询到的数据保存到了本地缓存当中,等到第二次查询时就直接从缓存当中来获取数据了
在这里插入图片描述

  • 注意:
    在这段查询代码中,执行两次查询语句使用的都是同一个SqlSession对象,只要使用的是同一个SqlSession对象那么就只需要查询一次,因为一级缓存的作用域是session级别
(2)二级缓存

在这里插入图片描述
这次分别创建了两个SqlSession对象,并且用它来分别获取UserMapper对象并执行查询操作,也就属于两个不同的会话,最终执行的结果就是会去执行两条SQL语句。

①当不开启二级缓存的情况下分别使用两个SqlSession对象来查询数据库

测试代码如下:
在这里插入图片描述
发现最终会执行两次SQL查询,并分别打印出查询结果
在这里插入图片描述

②开启二级缓存并分别使用两个SqlSession对象来查询数据库
  1. 开启二级缓存
    在这里插入图片描述
    在这里插入图片描述
  2. 再次执行测试,发现这次只执行了一次SQL语句
    可以看见存在一个Cache Hit关键字,代表成功命中了索引,证明第二次查询是从缓存中获取到的数据
    在这里插入图片描述
③注意事项

在这里插入图片描述

(3)总结

在这里插入图片描述

http://www.dtcms.com/wzjs/824569.html

相关文章:

  • 网站建设7个基湖南网站设计
  • 四川建设厅下载专区网站网站建设的主流架构有哪些
  • 网站建设布局企业网站主要有哪四种类型
  • 做球迷网站珠宝首饰网站建设规划书
  • 全国 网站备案 数量广东省网站备案
  • 昆明百度网站建设怎样提高百度推广排名
  • 广西建设厅网站绿色建筑标识网站服务器租用选择
  • 网站开发string文件菏泽住房和城乡建设局网站
  • 免费网站制作下载搭建一个论坛网站
  • 如何网站建设 需要详细的步骤网站微信登录怎么做的
  • 建站wordpress大丰网站设计公司
  • 医院网站信息化有哪些建设规范谷歌官网
  • 张槎网站开发移动端开发工具
  • 做像淘宝这样的购物网站要多少钱重庆是哪个省哪个市
  • 麦客网做网站百度网站制作联系方式
  • 课程网站建设技术北京企业建站
  • 代做企业网站备案比较好的网站建设公司
  • 班级网站模板素材wordpress双导航栏
  • 西宁网站建设模板网站设计制作体会
  • 国际版网站可以在国内做推广吗网站做不做301
  • 私人申请建设网站多少钱合肥做兼职网站设计
  • 电子商务网站系统规划 案例分析装修公司做推广网站怎么弄
  • 去什么网站做推广移动网站建设的前景
  • 响应式个人网站psd小程序游戏搭建
  • 做app的网站有哪些手机网站怎么做的好处
  • 网站安全防护找谁做教育网站模块建设
  • 南宁公司网站建设方案sem分析是什么
  • 高端网站设计简介邢台市建设银行网站
  • 深圳外贸建站广州seo网站推广优化
  • 计算机网站建设文献综述上海网页设计推荐