<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Hibernate 框架基礎 > 原文: [https://javabeginnerstutorial.com/hibernate/hibernate-framework-basic/](https://javabeginnerstutorial.com/hibernate/hibernate-framework-basic/) ## 什么是 Hibernate Hibernate 是 Java 語言的對象關系映射(ORM)庫,它提供了一個框架,用于將面向對象的域模型映射到傳統的關系數據庫。 Hibernate 通過使用高級對象處理功能代替與持久性相關的直接數據庫訪問,解決了對象關系阻抗不匹配的問題。 Hibernate 通過對象/關系映射促進了 Java 域對象的存儲和檢索。 ## Hibernate 功能 * 將 Java 類映射到數據庫表&反之亦然 * 數據查詢和檢索工具 * 基于下劃線數據庫生成 SQL 查詢。 并嘗試使開發人員擺脫手工結果集處理和對象轉換的麻煩。 * 使應用可移植到所有關系數據庫。 * 通過提供不同級別的緩存(第一,第二和查詢級別)來提高性能。 ## 什么是方言 每個 SQL 供應商都有自己的一組受支持的語法。 這就是所謂的*方言*。 為了生成適當的 SQL 查詢,Hibernate 需要知道需要生成哪個 DB 查詢。 Hibernate 通過`org.hibernate.dialect.Dialect`類及其子類為每個供應商完成此任務。 例如: DB2:`org.hibernate.dialect.DB2Dialect` MySQL:`org.hibernate.dialect.MySQLDialect` ## 什么是 HQL HQL 是 [**Hibernate 查詢語言**](https://javabeginnerstutorial.com/hibernate/hibernate-4-with-query-languages/)的縮寫。 這是 hibernate 提供的 SQL 啟發式語言。 開發人員可以編寫類似查詢的 SQL 來處理數據對象。 ## 連接池 Hibernate 具有自己的內部[連接池](https://javabeginnerstutorial.com/hibernate/connection-pooling-with-hibernate-4/),但它也支持某些第三方連接池供生產使用。 * c3p0 連接池 * Proxool 連接池 * 使用 JNDI 從應用服務器獲得連接 ## Hibernate 關聯 **什么是 Hibernate 關聯**:數據庫中的任何表都可以連接到同一數據庫或其他數據庫中的其他表。 這些表可以通過一些鍵(外鍵..)相互關聯。 這種情況可以由關聯處理。 例如:數據庫中有 2 個表格,**學生**,和**科目**。 一個學生可以學習一個科目或一個以上的科目。 在這種情況下,每個學生在“學生”表中將只有一個條目,但“科目”表可能包含多個學生表中相應記錄的記錄。 關聯映射用于將 Java 對象映射到 DB 表。 映射中涉及的實體: * 類(持久性)(POJO) * 數據庫表 * 映射文件(`.hbm`) **與 POJO 相關的規則**: * POJO 類需要具有默認構造器,這是 Hibernate 所需的。 * 延遲加載不適用于最終類。 最好具有非最終類。 **關聯類型** **單向關聯**: * 多對一 * 一對一 * 一對多 **與聯接表**的單向關聯 * 多對一 * 一對一 * 一對多 * 多對多 **雙向關聯** * 一對多/多對一 * 一對一 **與聯接表**的雙向關聯 * 一對多/多對一 * 一對一 * 多對多 ## Hibernate 緩存 緩存是提高系統性能的一種方法,因為它可以減少對數據庫的查詢。 查詢數據庫始終會對性能產生影響,因為它是 I/O 操作。 而且 I/O 操作比僅使用應用內存的操作要慢得多。 有兩種類型的緩存。 * 一級緩存(實體緩存) * 二級緩存(查詢緩存) 單擊此處了解有關 [Hibernate 緩存教程](https://javabeginnerstutorial.com/hibernate/caching-with-hibernate-4/)的更多詳細信息。 在下一章中,我們將更詳細地介紹這些科目。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看