首頁 > Java > java教程 > 主體

Hibernate簡介

DDD
發布: 2024-09-29 06:13:29
原創
642 人瀏覽過

Uma breve introdução ao Hibernate

Hibernate 是一種 ORM(物件關聯映射)工具,廣泛用於 Java 專案中,用於將物件從應用程式映射到關聯式資料庫中的表。
ORM 是一種促進專案中的類別與資料庫中的實體之間映射的工具。
透過使用像 Hibernate 這樣的框架,開發人員能夠專注於開發領域,而不用擔心持久性的細節。

Hibernate 的主要特點是:
1.資料存取的透明度:Hibernate 允許開發人員編寫只關注物件而不關注持久化細節的 Java 程式碼
2.事務支援:Hibernate 提供整合的事務控制,促進與不同事務管理器的整合。這確保了資料讀寫操作以確保資料完整性的方式執行。
3.繼承控制:Hibernate允許你靈活地將類別之間的繼承映射到資料庫。有不同的繼承映射策略,例如:
單表策略:層次結構中所有類別的單一表。
連接表策略:每個特定類別都有一個表。
每類表策略:每類一張表。
4.延遲載入:Hibernate 支援延遲載入的概念,即僅在必要時才載入資料集合和關聯,從而節省記憶體資源。
5.驗證機制:Hibernate 與 Bean Validation 集成,讓您可以直接在類別註解中定義實體欄位的驗證規則。

Hibernate 是 JPA 的幾種實作之一,JPA 是一個標準規範,定義如何在 Java 中實作 ORM。
這個框架帶來了一些好處,例如減少 SQL 和 JDBC 程式碼,因為 Hibernate 本身會自動產生和執行查詢。它也相容於許多關係型資料庫,如 MySQL、PostgreSQL、MariaDB 等。使用快取和控制明確定義的事務有助於優化應用程式效能。
然而,使用Hibernate作為它的學習曲線也有缺點,儘管它最簡單的操作佔大多數,但當我們開始實作快取、繼承映射和分散式事務時,我們一開始可能會遇到理解上的困難。 Hibernate 提供的抽像在某些情況下也會增加開銷,特別是在需要高度最佳化的查詢時。

下面我們可以看到一個有 Product 類別的範例,以下是 Hibernate 實作的一些 JPA 註解的說明。

`@Entity
@Table(name = "產品")
公開課產品{

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
private BigInteger id;

@Column(name = "nome_produto", nullable = false)
private String nome;

@Column(name = "descricao_produto")
private String descricao;

@Column(name = "preco_produto", nullable = false)
private BigDecimal preco;

// Getter e Setters
登入後複製

}`

  1. @Entity
    @Entity 註解指示 Product 類別是 JPA 實體。這意味著它將被映射到資料庫中的表。 Product 類別的每個實例對應於該表中的一行。
    該類別必須有一個帶有@id註解的字段,以指示資料庫中實體的唯一識別碼(主鍵)。

  2. @Table(name = "產品")
    @Table 註解指定該實體將對應到的資料庫中的資料表的名稱。在範例中,name = "product" 定義與 Product 實體關聯的表將稱為「product」。如果沒有提供@Table註解,則表名預設為類別名稱。

  3. @id
    @id註解用於將id字段標記為實體的主鍵。在資料庫中,該欄位將用作 Product 實體的每個實例的唯一識別碼。

  4. @GenerateValue(strategy = GenerationType.SEQUENCE)
    @GenerateValue 註解表示 id 欄位的值將自動產生。 Strategy = GenerationType.SEQUENCE 屬性指定 Hibernate 應該使用序列來產生資料庫中的主鍵值。
    還有其他產生主鍵的策略,例如:
    AUTO:將策略的選擇委託給持久性提供者(在本例中為 Hibernate)。
    IDENTITY:使用資料庫中的識別列,在插入過程中自動產生值。
    TABLE:使用特定的表來儲存主鍵。

  5. @Column(name = "product_name", nullable = false)
    @Column 註解將類別名字段對應到資料庫中對應的欄位。在範例中,該欄位將被稱為「product_name」。
    nullable = false 參數表示該列在資料庫中不能為空。換句話說,名稱欄位必須有一個值。

Hibernate 是一個強大且靈活的工具,用於在 Java 應用程式中操作數據,無需手動編寫 SQL。它透過抽象資料庫物件和表格之間的映射來促進複雜應用程式的開發,並且與 JPA 規範相容,它提供了標準化的 API,並且可以使用高級功能。

以上是Hibernate簡介的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!