hibernate的六種查詢方式

2021-09-01 16:29:08 字數 1685 閱讀 8531

hibernate的總結性隨筆,從點到面,講講hibernate查詢的6種方法。分別是hql查詢

,物件化查詢criteria方法,動態查詢detachedcriteria,例子查詢,sql查詢,命名查詢

如果單純的使用hibernate查詢資料庫只需要懂其中的一項就可以完成想要實現的一般功能,但是

從乙個點,讓我們掌握6中方法,則提供了更多選擇。每一種方法都有其適用的情況與前提。

hql查詢

hql是hibernate自己的一套查詢語言,於sql語法不同,具有跨資料庫的優點。示例**:

static void query(string name)

}finally

}

適用情況:常用方法,比較傳統,類似jdbc。缺點:新的查詢語言,適用面有限,僅適用於hibernate框架。

物件化查詢criteria方法

static void cri(string name,string password)

}finally

}

適用情況:物件導向操作,革新了以前的資料庫操作方式,易讀。缺點:適用面較hql有限。

動態分離查詢detachedcriteria

static list dc(detachedcriteria dc)

detachedcriteria dc = detachedcriteria.forclass(user.class);

int id = 1;

if (id != 0)

dc.add(restrictions.eq("id", id));

date age = new date();

if (age != null)

dc.add(restrictions.le("birthday", age));

list users = dc(dc);

system.out.println("離線查詢返回結果:" + users);

適用情況:物件導向操作,分離業務與底層,不需要字段屬性攝入到dao實現層。  缺點:適用面較hql有限。

例子查詢

static list example(user user)

sql查詢

static list sql()
適用情況:不熟悉hql的朋友,又不打算轉資料庫平台的朋友,萬能方法   缺點:破壞跨平台,不易維護,不物件導向。

命名查詢

static list namedquery(int id)

<?xml version="1.0" encoding="utf-8"?>

適用情況:萬能方法,有點像ibatis輕量級框架的操作,方便維護。  缺點:不物件導向。基於hql和sql,有一定缺陷。

六種方式實現hibernate查詢

hibernate查詢的6種方法。分別是hql查詢 物件化查詢criteria方法,動態查詢detachedcriteria,例子查詢,sql查詢,命名查詢。1 hql查詢 hql是hibernate自己的一套查詢語言,於sql語法不同,具有跨資料庫的優點。示例 static void query ...

六種方式實現hibernate查詢

hql查詢 hql是hibernate自己的一套查詢語言,於sql語法不同,具有跨資料庫的優點。示例 static void query string name finally 適用情況 常用方法,比較傳統,類似jdbc。缺點 新的查詢語言,適用面有限,僅適用於hibernate框架。物件化查詢cr...

六種方式實現hibernate查詢,及IDE推薦

hibernate查詢的6種方法。分別是hql查詢,物件化查詢criteria方法,動態查詢detachedcriteria,例子查詢,sql查詢,命名查詢。如果單純的使用hibernate查詢資料庫只需要懂其中的一項就可以完成想要實現的一般功能,但是 從乙個點,讓我們掌握6中方法,則提供了更多選擇...