查詢的幾種方法

2021-08-29 03:32:27 字數 1372 閱讀 4820

1. get() and load()

[quote]session.get(clazz, id);

session.load(clazz, id);[/quote]

說明: load()與get()的區別

請注意如果沒有匹配的資料庫記錄,load()方法可能丟擲無法恢復的異常(unrecoverable exception)。 如果類的對映使用了**(proxy),load()方法會返回乙個未初始化的**,直到你呼叫該**的某方法時才會去訪問資料庫。 若你希望在某物件中建立乙個指向另乙個物件的關聯,又不想在從資料庫中裝載該物件時同時裝載相關聯的那個物件,那麼這種操作方式就用得上的了。 如果為相應類對映關係設定了batch-size, 那麼使用這種操作方式允許多個物件被一批裝載(因為返回的是**,無需從資料庫中抓取所有物件的資料)。

如果你不確定是否有匹配的行存在,應該使用get()方法,它會立刻訪問資料庫,如果沒有對應的行,會返回null

2. hql

[quote]// 返回一行記錄

string hql = "from torder o where o.id = ?";

torder o = (torder) s.createquery(hql)

.setparameter(0, orderid)

.uniqueresult();

// 命名引數

query q = sess.createquery("from domesticcat cat where cat.name = :name");

q.setstring("name", "fritz");

// 位置引數

query q = sess.createquery("from domesticcat cat where cat.name = ?");

q.setstring(0, "izi");

// 命名引數列表

query q = sess.createquery("from domesticcat cat where cat.name in (:nameslist)");

q.setparameterlist("nameslist", names);

// 分頁查詢

query q = sess.createquery("from domesticcat cat");

q.setfirstresult(20);

q.setmaxresults(10);

list cats = q.list();[/quote]

3. criteria

4. native sql

5. named sql queries(不推薦)

6. filter(不推薦)

7. detached queries(還沒測試)

mysql模糊查詢的幾種方法

下面介紹mysql中模糊查詢的四種用法 1,表示任意0個或多個字元。可匹配任意型別和長度的字元,有些情況下若是中文,請使用兩個百分號 表示。比如 select from user where u name like 三 將會把u name為 張三 張貓三 三腳貓 唐三藏 等等有 三 的記錄全找出來。...

mysql模糊查詢的幾種方法

下面介紹mysql中模糊查詢的四種用法 1,表示任意0個或多個字元。可匹配任意型別和長度的字元,有些情況下若是中文,請使用兩個百分號 表示。比如 select from user where u name like 三 將會把u name為 張三 張貓三 三腳貓 唐三藏 等等有 三 的記錄全找出來。...

mysql模糊查詢的幾種方法

下面介紹mysql中模糊查詢的四種用法 1 表示任意0個或多個字元。可匹配任意型別和長度的字元,有些情況下若是中文,請使用兩個百分號 表示。比如 select from user where u name like 三 將會把u name為 張三 張貓三 三腳貓 唐三藏 等等有 三 的記錄全找出來。...