亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

hibernate 查詢操作的方法Load()和get()以及延遲檢索的簡單理解與總結

標簽:
Java

Load()和get()同为查询方法,涉及到一个延迟检索的概念。这也是两者的主要区别。

Get是讲获得查询对象放进内存中,而且还包括对象的属性值。但是load查询只是在内存中建立一个空壳对象,只有内存地址,没有具体的属性值。这就导致了如果没有指定的数据,就会抛出空指针异常。

这样一说两者的巨大区别立马现象。一个只需查询名字,一个却要查询这个名字的所有信息。

在大数据的今天,显然先查询名字更加快捷。特别是你不需要某些对象的时候,但是get还是把它们的所有信息都查询了出来,这就相当于做了很多无用功。

不过get也不是没有优势,比如你急徐确切数据,二查询的数据库的数据又比较少,那么一次查询所有信息也不会太过于浪费时间。因为已经获得了所有数据,没必要用session了。所以可以关闭session。

而load只是获得了对象名,却还要获得对象的更多信息,所以还需要session继续操作,所以不能关闭session。

**

总结如下:

急需且数据小的时候用get。关闭session。无数据抛出null。 不急用且数据大的时候用load。不关闭session。无数据,抛出空指针异常。

**

重点在上面,下面即使有图,也没有多大价值。不过也算一点小发现。

图片描述

图片描述

如果用户存在,则执行更新操作,如果用户不存在,则执行插入操作,而且这个方法继承了查询与更新,没必要首先get或者load进行查询操作。直接两步合一步。但是在底层执行的sql语句查询都是斌不可少的。

图片描述

點擊查看更多內容
1人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
學生
手記
粉絲
238
獲贊與收藏
4217

關注作者,訂閱最新文章

閱讀免費教程

感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消