<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Hibernate 4 連接池 > 原文: [https://javabeginnerstutorial.com/hibernate/connection-pooling-with-hibernate-4/](https://javabeginnerstutorial.com/hibernate/connection-pooling-with-hibernate-4/) 我們已經進入了 Hibernate 4 的狀態,在這里我們可以更改系統后面的數據庫以用于生產用途(因此,H2 數據庫就不存在了)。 現在該看一下連接池了,因為 Hibernate 的默認連接池機制是基本的,僅提供給開發和測試使用。 為了獲得最佳性能和穩定性,需要使用第三方工具。 市場上有一些產品,其中大多數是免費的,您可以將它們與 Hibernate 一起輕松使用。 ## C3P0 就像《星球大戰》中的黃金翻譯和協議機器人一樣,主要使用的連接池供應器稱為 c3p0。 C3P0 是一個開源連接池,它具有一個 Hibernate 包,您可以將其添加為項目的依賴項,并準備配置該池: ```java <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-c3p0</artifactId> <version>4.3.10.Final</version> </dependency> ``` c3p0 連接池的最重要的配置屬性如下: * `c3p0.min_size`:池中的最小 JDBC 連接數。 Hibernate 默認值:1 * `c3p0.max_size`:池中最大 JDBC 連接數。 Hibernate 默認值:100 * `c3p0.timeout`:從池中刪除空閑連接時(秒)。 Hibernate 默認值:0,永不過期。 * `c3p0.max_statements`:將緩存準備好的語句數。 提高性能。 Hibernate 默認值:0,禁用緩存。 * `c3p0.idle_test_period` – 自動驗證連接之前的空閑時間(以秒為單位)。 Hibernate 默認值:0 ### C3P0 的配置 要使用您的應用配置 C3P0,您需要設置以下屬性。 在這種情況下,讓我們在`hibernate.cfg.xml`中查看基于 XML 的已知配置: ```java <property name="hibernate.connection.provider_class">org.hibernate.c3p0.internal.C3P0ConnectionProvider</property> <property name="hibernate.c3p0.min_size">1</property> <property name="hibernate.c3p0.max_size">19</property> <property name="hibernate.c3p0.timeout">120</property> <property name="hibernate.c3p0.max_statements">10</property> ``` 連接供應器的第一行是可選的,您不必輸入它,Hibernate 會知道您正在使用 C3P0。 這是因為位置(包結構)在 Hibernate 版本之間可能會發生變化,并且每次更新到連接供應器類位于不同位置的較新版本時,都會遇到麻煩,這很容易讓人感到頭痛。 如果在啟動服務器時仔細查看日志或控制臺輸出,則應該看到正在配置 C3P0: ```java org.hibernate.c3p0.internal.C3P0ConnectionProvider configure ``` ## Proxool Proxool 是 C3P0 的替代連接池,但是它需要更多配置,因此我個人更喜歡 C3P0。 僅設置依賴項和屬性是不夠的,您需要一個額外的 XML 文件,其中包含 Proxool 的配置信息。 依賴項幾乎與 C3P0 相同: ```java <dependency> ?? <groupId>org.hibernate</groupId> ?? <artifactId>hibernate-proxool</artifactId> ?? <version>4.3.10.Final</version> </dependency> ``` ### Proxool 的配置 如前所述,僅在`hibernate.cfg.xml`文件中配置 Proxool 是不夠的,您還需要一個單獨的 XML 文件: ```java <property name="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property> <property name="hibernate.proxool.pool_alias">proxool</property> <property name="hibernate.proxool.xml">proxool.xml</property> ``` 與第一行的 C3P0 一樣,`hibernate.connection.provider_class`是可選的。 在`hibernate.proxool.xml`屬性中提到了 XML 文件。 `proxool.xml`包含以下內容: ```java <proxool-config> ?? <proxool> ?????? <alias>proxool</alias> ?????? <driver-url>jdbc:h2:file:./example;DB_CLOSE_DELAY=-1;MVCC=TRUE</driver-url> ?????? <driver-class>org.h2.Driver</driver-class> ?????? <driver-properties> ?????????? <property name="user" value="sa"></property> ?????????? <property name="password" value=""></property> ?????? </driver-properties> ?????? <minimum-connection-count>10</minimum-connection-count> ?????? <maximum-connection-count>20</maximum-connection-count> ?? </proxool> </proxool-config> ``` 如您所見,您必須在 Proxool 中提供數據庫連接。 這是強制性的。 但是,由于這個原因,您可以從`hibernate.cfg.xml`文件中保留連接配置。 Proxool 存在一個缺點:您必須定義要使用的方言。 使用 C3P0 和默認的 Hibernate 配置,您無需設置要使用的方言,但 Proxool 需要此信息。 如果一切都已設置好,則在啟動應用時,您可以在日志中或控制臺上看到以下條目: `org.hibernate.proxool.internal.ProxoolConnectionProvider`配置 ## 一般關于配置 Hibernate 使用其魔力來根據您配置的屬性來標識要使用的連接池供應器。 但是,您可以使用`hibernate.connection.provider_class`屬性定義連接供應器。 如果未配置連接池,則使用默認值。 啟動應用時,它在日志或控制臺輸出中可見: ```java org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure ``` ## 總結 有一些連接池供應器,您可以輕松地將它們與 Hibernate 綁定在一起,從而為您提供良好的數據庫連接體驗。 配置這些供應器很容易,因為大多數供應器都可以將其 Hibernate 集成包作為項目的依賴項導入,并使所有程序運行。
                  <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>

                              哎呀哎呀视频在线观看