Hibernate提供多少種訪問數據庫的方式?Hibernate提供多少種訪問數據庫的方式?
例如,我想CRUD一個目的是數據庫,我發現:
從會話工廠使用會話: session.save(對象); ...
使用Hibernate查詢語言。
使用Hibernate標準查詢。
使用原生SQL。
但我不知道我該用什麼。請列出您的練習,以便按優先級降低順序訪問數據庫,以及您爲什麼這樣做。
謝謝。
Hibernate提供多少種訪問數據庫的方式?Hibernate提供多少種訪問數據庫的方式?
例如,我想CRUD一個目的是數據庫,我發現:
從會話工廠使用會話: session.save(對象); ...
使用Hibernate查詢語言。
使用Hibernate標準查詢。
使用原生SQL。
但我不知道我該用什麼。請列出您的練習,以便按優先級降低順序訪問數據庫,以及您爲什麼這樣做。
謝謝。
如果您有一個ID並想要關聯的實體,請使用Session.get()。它是高效的,並且使用第一級緩存來避免重複執行查詢。
如果您需要通過其他條件獲取實體(例如,所有具有給定名字的用戶),則使用JPQL查詢。它們編寫簡單,可讀性強,並且比標準查詢具有更少的限制。
如果您需要採取各種可選標準(如複雜的搜索表單),則標準API是該工作的工具。但它不能完成JPQL查詢所做的一切。還有其他API可用,並且您可以相對輕鬆地編寫一個API,以根據需要生成動態JPQL查詢。
如果您有一個非常複雜的查詢,無法使用JPQL來表示,請使用SQL。
要將事情寫入數據庫,通常不應使用查詢,除非在特定情況下必須以相同方式修改許多實體。相反,讓實體修改並修改它們。 Hibernate會自動保存它們的新狀態。
編號1)直接由2)和3)要求。 Number 4)完全擊敗了Hibernate的對象。在2)和3)之間?蘋果和桔子。 –
謝謝鮑里斯。 – June6th