天天看點

hibernate之Session中的load()和get()的差別(簡述)

load方法是差別于get方法的,load是在記憶體中先擷取的是一個代理對象,get方法是直接通過select 語句擷取,

Teacher teacher=(Teacher)session.get(Teacher.class,1);

那麼這個時候已經發出了 select語句,那麼這個teacher對象已經儲存了資料庫中的數

據;

而 Teacher teacher=(Teacher)session.load(Teacher.class,1)這種形式是先生成一

個Teacher的代理對象,這個代理對象還不具有資料庫調出來的資料,select語句還沒有

發出,當執行該對象的具體方法時,這個時候就發出了select語句,就相當于是這個時

候Teacher對象才具有了資料,相當于是這個時候才執行個體化了,也就是 在調用

 t.getName()方法的時候  才發出了select語句,有點延遲加載的意思(個人看法)。

寫之記錄記錄。。。