延迟加载

mybatis学习笔记(13)-延迟加载

偶尔善良 提交于 2020-03-24 11:51:14
3 月,跳不动了?>>> mybatis学习笔记(13)-延迟加载 标签: mybatis [TOC] resultMap可以实现高级映射(使用 association 、 collection 实现一对一及一对多映射), association 、 collection 具备延迟加载功能。 延迟加载:先从单表查询、需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。 需求: 如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载。 使用association实现延迟加载 mapper.xml 需要定义两个mapper的方法对应的statement。 1.只查询订单信息 SELECT * FROM orders 在查询订单的statement中使用association去延迟加载(执行)下边的satatement(关联查询用户信息) <!-- 查询订单关联查询用户,用户信息需要延迟加载 --> <select id="findOrdersUserLazyLoading" resultMap="OrdersUserLazyLoadingResultMap"> SELECT * FROM orders </select> 2.关联查询用户信息

EF中的预先加载和延迟加载

岁酱吖の 提交于 2020-03-24 02:38:47
延迟加载 (Lazy Loading) : 当实体第一次被读取时,相关数据不会被获取 , 只会读取本身。 延迟加载 的 数据不会一次性查出来,而是一条一条的查询,这样就会多次请求数据库进行查询 。 预先加载 <Eager Loading> :预先加载会把所有的数据一次性从数据库中读取出来, 预先加载就是从数据库中一次性查询所有数据,存放到内存中。 写个例子:一般我是这么处理的 1、 在数据库上下文中禁用延迟加载 public DBaseContext() : base("MHaloDBaseContext") { this.Configuration.LazyLoadingEnabled = false; } 因为上下文是默认延迟加载的,这样做的结果是所有的默认为预先加载。 2、 下面定义一个类,说明一下 public class Recruit : EntityBase { public Recruit() { IsShow = true; } public string Name { get; set; } public string Describe { get; set; } public int OrderId { get; set; } public bool IsShow { get; set; } public int JobCategoryId { get;

预先加载、显示加载和延迟加载

若如初见. 提交于 2020-03-18 04:42:26
一、预先加载   1、简单的来说就是查询某实体类型时,一并加载相关实体;读取实体时会检索其相关数据,当实体类中有多个相关实体时,可以同时指定需要加载的数据(一个或者多个都可以,也可以多层级,根据需要指定),通过Include和ThenInclude方法进行指定    举例说明:1>单个预先加载          var blogs = context.Blogs .Include(blog => blog.Posts) .ToList();         2>多个预先加载          var blogs = context.Blogs .Include(blog => blog.Posts) .Include(blog => blog.Owner) .ToList();         3>层级预先加载           var blogs = context.Blogs .Include(blog => blog.Posts) .ThenInclude(post => post.Author) .ThenInclude(author => author.Photo) .ToList();          var blogs = context.Blogs .Include(blog => blog.Posts) .ThenInclude(post => post

Jquery 图片延迟加载技术

↘锁芯ラ 提交于 2020-03-16 06:03:22
参考网址:http://code.ciaoca.com/jquery/lazyload/ 延迟加载能大大增加你网站的加载速度! 需要引入以下文件<Jq文件也是少不了的>: <script src="~/Content/demo/jquery.lazyload.js"></script> <script src="~/Content/demo/jquery.lazyload.min.js"></script> <script type="text/javascript"> $('img').lazyload(); </script> 这些JQ文件的下载地址: http://code.ciaoca.com/jquery/lazyload/ 官方网址: http://appelsiini.net/projects/lazyload/ 建议将这些JQ文件引用放在HTML 文档的最下面,这句话很重要。 所引用的JQ文件必须在1.4版本以上 所加载的图片,必须设置他的高和宽。 最后,通过一个简单的例子加以示范: 示例代码如下: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /

图片延迟加载jquery插件imgLazyLoad(三)

╄→尐↘猪︶ㄣ 提交于 2020-03-16 06:03:10
此Jquery插件是在图片加载前显示一个加载图片,当图片下载完毕后显示图片出来,可对图片进行是否自动缩放功能,此Jquery插件使用时可让页面先加载,而图片后加载的方式,解决了平时使用时要在图片显示出来后才能进行缩放时撑大布局的问题 ///参数设置: scaling 是否等比例自动缩放 width 图片最大高 height 图片最大宽 loadpic 加载中的图片路径 js插件代码: /* **************图片预加载插件****************** ///作者:没剑(2008-06-23) ///http://regedit.cnblogs.com ///说明:在图片加载前显示一个加载标志,当图片下载完毕后显示图片出来 可对图片进行是否自动缩放功能 此插件使用时可让页面先加载,而图片后加载的方式, 解决了平时使用时要在图片显示出来后才能进行缩放时撑大布局的问题 ///参数设置: scaling 是否等比例自动缩放 width 图片最大高 height 图片最大宽 loadpic 加载中的图片路径 */ jQuery.fn.LoadImage=function(scaling,width,height,loadpic){ if(loadpic==null)loadpic="load3.gif"; return this.each(function(){ var t

Lazy Load, 延迟加载图片的 jQuery 插件

允我心安 提交于 2020-03-16 05:56:29
Lazy Load 是一个用 JavaScript 编写的 jQuery 插件. 它可以 延迟加载长页面中的图片 . 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预加载的处理方式正好是相反的. 在包含很多大图片长页面中延迟加载图片可以加快页面加载速度. 浏览器将会在加载可见图片之后即进入就绪状态. 在某些情况下还可以帮助降低服务器负担. Lazy Load 灵感来自 Matt Mlinac 制作的 YUI ImageLoader 工具箱. 这是 演示页面 . 这里有几个可用的 demo 页面提供给那些匆忙的人参考: 基本选项 , 淡入展示效果 , script 脚本缺失的降级处理 , 水平滚动 , 容器内水平滚动 , 容器内垂直滚动 , 页面内存在超多图片 , 延时加载图片 查看 demo 中每个请求间浏览器缓存的内容. 你可以通过开发者控制台 (Chrome 和 Safari), Firebug (Firefox) 或者 HTTPHeaders (IE) 检测到实际加载的内容. 怎样使用? Lazy Load 依赖于 jQuery . 请将下列代码加入页面 head 区域: <script src="jquery.js" type="text/javascript"></script> <script src="jquery

Mybatis_day4_Mybatis的延迟加载

心不动则不痛 提交于 2020-03-12 04:11:25
Mybatis 中一对一,一对多,多对多关系的配置及实现,可以实现对象的关联查询。实际开发过程中很多时候我们并不需要总是在加载用户信息时就一定要加载他的账户信息。此时就是我们所说的延迟加载。 1.1 何为延迟加载? 延迟加载: 就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。延迟加载也称懒加载. 好处:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速 度要快。 坏处:因为只有当需要用到数据时,才会进行数据库查询,这样在大批量数据查询时,因为查询工作也要消耗时间,所以可能造成用户等待时间变长,造成用户体验下降。 1.2 实现需求 需求: 查询账户(Account)信息并且关联查询用户(User)信息。如果先查询账户(Account)信息即可满足要求,就不需再查询用户信息,当我们需要查询用户(User)信息时再查询用户(User)信息。把对用户(User)信息的按需去查询就是延迟加载。 mybatis第三天实现多表操作时,我们使用了 resultMap 来实现一对一,一对多,多对多关系的操作。主要是通过 association、collection 实现一对一及一对多映射。association、collection 具备延迟加载功能。 1.3 使用 assocation 实现延迟加载 需求:查询账户信息同时查询用户信息。

图片延迟加载

我与影子孤独终老i 提交于 2020-03-11 14:18:03
1,图片加载JS var LazyLoad = function (options) { this.SetOptions(options); this.container = $(this.options.container); this.childs = $(this.options.container).find("[lazyload-src]"); this.data = []; this.oldScroll = this.options.oldScroll; this.newScroll = this.options.newScroll; this.ImgWidth = this.options.ImgWidth; this.ImgHeight = this.options.ImgHeight; this.isZoom = this.options.isZoom; this.Initialize(); this.ScrollLoad(); this.ResizeLoad(); }; LazyLoad.prototype = { SetOptions: function (options) { //初始化数据 this.options = { container: null, //父容器,要保证延迟加载的图片在该容器之内 childs: null, //需要延迟加载的图片数组

图片延迟加载

怎甘沉沦 提交于 2020-03-11 14:17:42
1、很多网站都有图片延迟加载的功能,我们都知道图片很大的时候,网页打开会很慢,今天发现有个名字叫 Lazy Load的 jquery插件可以实现。 官网: http://www.appelsiini.net/projects/lazyload 使用: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>test lazy load</title> <script type="text/javascript" src="jquery-1.3.2.js"></script> <script type="text/javascript" src="jquery.lazyload.js"></script> <script type="text/javascript"> $(function(){ $("img").lazyload(

课时9::MyBatis整合Log4j、延迟加载

折月煮酒 提交于 2020-03-10 19:40:20
.1)如何整合Log4j到mybatis   1.导入log4j的jar包 <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies>   2.在主配置文件中开启log4j <!-- 配置log4j启动--> <settings> <setting name="logImpl" value="LOG4J"></setting> </settings>     2.1 .如果不写value里面的值 会按照这个顺序查找SLF4J-->Apache Commons Logging-->Log4j 2---Log4j-->JDK logging   3.在resources中配置log4j.properties文件 .2)延迟加载   1.概念     1.1 一对一,一对多,多对一,多对多     一对多:班级--学生,     如果不采用延迟加载(立即加载),查询时会将一对多都查询,班级丶班级中的所有学生。     如果想要 暂时只查询一个1的一方,而多的一方 先不查询,而是在需要查询的时候再去查询--->延迟加载   2.以学生和学生证一对一案例为例     2.1