关于延迟加载lazyload

好像很多地方都用到了延迟加载,JS里面,Hibernate里面,那么什么是延迟加载呢?

 

考虑这样的事情,你想看完电视了去吃水果。在你看电视的时候,就从冰箱把水果拿到身边了。然后看完了电视就开始吃水果了。

 

那么延迟加载就是,你想看完电视了去吃水果。在你看电视的时候,水果并没有拿到身边。等看完了电视你需要吃水果的时候,在去冰箱拿。

 

延迟加载就是,当真正需要数据的时候,才去取数据。

 

来看看延迟加载的应用。当一个网页有很多图片时,如果图片全部加载完再显示网页会很慢。可以这样,先取上面的图片,然后显示网页。当往下拖动网页的时候,才去取下面的图片。这样能快速显示网页,增加用户体验。

 

在Hibernate中,当你发出一个查询时,并不真正的去查询数据库。而且当你取这个查询的数据时,才去查询数据库。

 

如下面的代码:

Customer c2 = (Customer)session.load(Customer.class, 1L);  
Long l2 = c2.getOid();  

 当新建个Customer对象时,并没有查询数据库。而是当需要这个对象的数据(第二句)时,才开始查询数据库。

 

Hibernate中延迟加载的时候,使用的是代理模式

你可能感兴趣的:(java)