標籤:功能 ati 直接 使用 唯一性 dao 其他 hibernate lis
Hibernate概述:1. 什麼是架構:
寫程式,在使用架構之後,幫我們實現一部分的功能,使用架構的好處可以少寫一部分代碼實現功能
2. 什麼是hibernate架構:
- hibernate架構應用在javaee三層結構中的dao層的架構
- 在dao層裡面做對資料庫的crud操作,使用hibernate實現crud操作,hibernate底層代碼就是jdbc,hibernate對jdbc進行封裝,使用hibernate好處,不需要寫複雜的jdbc代碼了,不需要寫sql語句了
- hibernate是一個開源的輕量級的架構
- hibernate版本
hibernate3.X
hibernate4.x(過度版本,少有人用)
hibernate5.x
3. hibernate架構的目錄結構:
- documentation:hibernate的相關文檔
- lib:hibernate的相關jar包
- project:hibernate的相關的原始碼
4. hibernate底層實現的思想:
- hibernate使用orm思想對資料庫進行crud操作
- 在web階段學習javabean思想(有javabean的操作),javabean更正確的叫法,叫做實體類
- hibernate的orm思想(Object relational mapping):對象關係映射
讓我們的實體類和我們的資料庫表進行一一的對應關係:讓實體類和資料庫的表對應,讓實體類的屬性和表裡面的欄位對應,這樣的話就不需要直接操作資料庫表,二動作表對應實體類對象,就可以實現對資料庫的操作。
Hibernate入門:
\lib\required\下的jar必須要
\lib\jpa\下實體映射包
還有一個是資料庫的驅動包
-
-
- 配置實體類的設定檔(配置實體類和資料庫表的一一對應的關係,包括屬性和欄位,實體類和表)
- 每一個實體類必須有一個屬性對應表的主鍵(保證唯一性,Hibernate要求)
- 在每一個實體類的下面建立一個xml檔案(位置和名稱沒有具體的要求,但建議卸載該實體類的下面),建議命名為:實體類名稱.hbm.xml(此檔案需要引入dtd的約束)
建立實體類
引入約束檔案
配置設定檔
-
-
- 配置Hibernate的核心設定檔
- 核心設定檔格式為xml,且核心設定檔名稱和位置固定(有要求:必須放在src目錄下面;必須為hibernate.cfg.xml)
-
-
-
- Hibernate在操作的過程中,只會載入核心設定檔,其他設定檔不會進行載入(如上面的映射設定檔)
- 配置hibernate.cfg.xml檔案
- 設定資料庫資訊
- 配置Hibernate資訊
- 配置對應檔資訊
-
-
- 代碼實現hibernate的crud操作
- 載入hibernate的核心設定檔
- 建立SessionFactory對象
- 使用SessionFactory得到Session對象
- 開啟事務
- crud操作
- 提交事務
- 關閉資源
package com.geore.test;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;import org.junit.Test;import com.geore.pojo.User;public class TestDemo1 {@Testpublic void fun() {// 載入hibernate核心設定檔,會到src目錄下去尋找hibernate.cfg.xml檔案進行載入Configuration cfg = new Configuration();cfg.configure();// 建立SessionFactory對象,讀取核心設定檔,並且根據映射關係將表建立SessionFactory sf = cfg.buildSessionFactory();// 使用SessionFactory建立Session對象,session類似於連結化物件Session session = sf.openSession();// 開啟事務Transaction ts = session.beginTransaction();// 寫具體的邏輯crud操作// 添加操作User user = new User();user.setUsername("Geore");user.setPassword("123456");session.save(user);// 提交事務ts.commit();// 關閉資源(之前還可以加上一步,復原事務)session.close();sf.close();}}
映射設定檔注意點
- 映射設定檔名稱和位置沒有固定的要求
- 映射設定檔中,標籤name屬性值寫實體類相關的內容
- Class標籤name屬性值實體類的全路徑
- Id標籤和property標籤name屬性值,實體類屬性名稱
- Id標籤和property標籤,column屬性可以省略(不寫預設和那麼屬性的值一樣)
- Property標籤還有一個type屬性,用來指定表欄位的類型(可以不寫)
核心設定檔的細節
- 核心設定檔的名稱和位置固定
- 核心設定檔主要分為部分的內容
- 設定資料庫資訊:必須寫
- 配置Hibernate資訊:可選
- 配置映射關係檔案: 必須寫
Hibernate入門1