AI Academy
促銷
CodeGym University
學習
課程
任務
問卷 & 測驗
遊戲
說明
行程
社群
用戶
論壇
聊天
文章
成功故事
動態
評價
訂閱
淺色主題
課程
評論
關於我們
開始
開始學習
立即開始學習
My Progress
Courses
任務地圖
課程
Java
SQL & Hibernate
等級 16
標準API
SQL & Hibernate
等級 16,
課程 0
Criteria API 簡介 在 Hibernate 中有兩種寫數據庫查詢的方法: 休眠查詢語言 標準API 您很久以前就已經遇到過第一個,是時候熟悉 Criteria API 了。這是一個非常強大的工具,在某些時候它甚至比 HQL 更受歡迎。現在它不再那麼流行了,但對於某些任務來說,它肯定是比 HQL 更好的解決方案。 無論如何,不熟悉 Criteria API 就無法學習 Hibernate。我們先寫一個小例子,然後我們來分析。例如,我們會從數據庫中請求所有員工(Emp
標準 API 第 2 部分
SQL & Hibernate
等級 16,
課程 1
分組和聚合函數 您已經了解瞭如何向 Criteria API 發出簡單請求。讓我們看看如何進行更複雜的查詢。 例如,我們要編寫一個查詢來確定一家公司的員工人數。下面是它在 HQL 中的樣子: select count(*) from Employee 在 Criteria API 上像這樣: CriteriaQuery critQuery = builder.createQuery(Long.class);
本機查詢
SQL & Hibernate
等級 16,
課程 2
3.1 簡介 我想談的另一個有用的東西是NativeQuery。如您所知,使用 NativeQuery,您可以使用本機 SQL 編寫查詢。然而,更有趣的是,您不必在獲取查詢結果時使用類映射。 我寧願給你看一個例子: List persons = session.createNativeQuery("SELECT * FROM Person").list();
交易
SQL & Hibernate
等級 16,
課程 3
4.1 Hibernate 中的事務介紹 對於以上所有內容,我想添加有關交易的信息。如您所知,事務是一組必須一起執行的操作。如果任何操作失敗或執行出錯,則必須取消所有其他操作。 Hibernate 能夠處理兩種類型的事務: JDBC JTA JDBC 事務實際上是數據庫事務。它與使用數據庫、JDBC 連接相關聯。並且他確保使用數據庫時的操作按應有的方式執行:要么全部執行,要么什麼都不執行。 JTA - 事務是應用程序級別的事務。它不綁定到任何數據庫。它的任務是確保執行某些操作
道
SQL & Hibernate
等級 16,
課程 4
DAO簡介 當通過 JDBC 甚至通過 Hibernate 使用數據庫時,代碼往往比我們想要的更麻煩。數據庫查詢通常包含: 數據驗證 設置請求參數 根據查詢參數選擇 HQL 查詢 使用 Criteria API 構建查詢 緩存設置 初始錯誤處理等 因此,通常的做法是創建特殊的類來處理數據庫。這樣的類稱為 DAO,數據訪問對象。他們的任務是隱藏使用數據庫的所有復雜性,並為外部提供一個美觀方便的接口。 例子: public class EmployeeDAO {
關於 Hibernate 的有用的細微差別
SQL & Hibernate
等級 16,
課程 5
同時與兩個基地合作 很多時候,您需要同時處理兩個基地。例如,您從一個數據庫讀取數據,對其進行處理並將其寫入另一個數據庫。 或者更常見。您的應用程序有一個本地數據庫可以使用,也可以從支持 SQL 數據查詢格式的各種遠程源讀取數據。例如 Excel。 對於這些遠程數據源,自定義 Hibernate 映射非常有用,這樣應用程序的業務邏輯就可以更簡單並且只使用 Java 對象。 最簡單的方法是擁有多個配置文件。例如,像這樣: hibernate_oracle.cfg.xml
測試 Hibernate 代碼
SQL & Hibernate
等級 16,
課程 6
基於內存和測試 現在是最有趣的。在測試 Hibernate 代碼時,通常您不想使用真正的基礎,而是使用某種實現最少功能的存根。 您能想像一個實現大部分 SQL Server 標準的存根嗎?我沒有。但是,內存數據庫本身就非常出色。它的工作原理大致是這樣的: 在@BeforeAll 方法中,我們初始化內存中的數據庫連接。 在@BeforeEach 方法中,我們獲取會話並打開一個事務。 在@Test 方法中,我們使用當前會話和事務。 在@AfterEach 方法中,我們提交事務。
Please enable JavaScript to continue using this application.