hibernate獲取單個物件

2021-06-12 05:10:48 字數 969 閱讀 4805

查詢單個物件可以直接通過session物件來做到,其中session這個物件提過了2種獲得單個物件的方法,乙個是get方法和load方法,我去看這個兩個方法的時候發現這兩個方法的引數是一樣的,使用方式也是一樣的,我們先來看看具體的使用方法:

object?obj?=?session.get(user.getclass(),?

100);

object?obj1?=?session.load(user.getclass(),?200

); 這個方法的使用方式看起來都一樣都能獲取到乙個object物件,其實這兩個方法有很大的區別:

1.用get方法的時候是session會立即建立乙個連線並獲取資料,

用load方法的時候是session不會去建立連線然後去獲取資料,它會在你去獲取你要查詢的物件的屬性的時候才會去建立連線和獲取資料,所以說,用load的話,我們獲取到的obj1裡面其實沒有任何資料,只有我們obj1.get***();的時候才會去獲取資料庫的資料,但是如果我們在沒有去獲取它的屬性以前,就關閉了session的話,就會報session已經關閉了。

2.用load方法的時候如果查詢出來的物件裡面又包含乙個物件屬性呢,當我們查詢出來的時候這個物件裡面的物件屬性是為null的,當具體要get***物件屬性的時候才會去訪問。

3.用get的話如果傳入的id不存在會返回空值,load返回乙個**類,如果id不存在,報id不存在異常

上面的兩種方法都要通過主鍵進行查詢,其他欄位不能夠使用。而我們在平常專案中很多時候需要通過乙個唯一約束條件得到乙個物件。比如通過使用者名稱得到密碼,這個時候可以使用uniqueresult()方法來獲取。比如

query q = session.createquery("select t.password from tuserlogin t where t.username='"+loginuser+"'");

object o = q.uniqueresult();

這個時候o就是乙個字串型別的物件。

java從資料庫獲取單個物件或物件集合的簡單工具類

開發中在不用資料庫的情況下運算元據庫,比如說對資料庫的增刪改查,每次都重新擼一遍重複的 那樣就會很麻煩,這裡就給安利乙個很簡單的工具類來對資料庫進行讀寫操作,當然並不能涵蓋所有的功能,說了,只是很簡單的運算元據庫,當然你可以直接使用框架來操作,那樣更好。話不多說,直接上 public class d...

hibernate物件關係

hibernate學習第二天總結 一對一的關係有 共享主鍵見表方式 唯一外來鍵見表方式 共享主鍵建表方式 即一張表的主鍵,做了主鍵又做了外來鍵 person類裡面有乙個passport類的關聯屬性,名字叫做passport,根據傳遞性持久化,要儲存person物件的時候,同時要儲存 passport...

Hibernate核心物件

configuration 類負責管理hibernate的配置資訊。它包括如下內容 hibernate執行的底層資訊 資料庫的url 使用者名稱 密碼 jdbc驅動類,資料庫dialect,資料庫連線池等。hibernate對映檔案 hbm.xml hibernate配置的兩種方法 屬性檔案 hib...