最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java數(shù)據(jù)庫連接池新手入門一篇就夠了,太簡單了!

 更新時間:2021年06月09日 11:19:47   作者:香菜聊游戲  
數(shù)據(jù)庫連接池負責分配、管理和釋放數(shù)據(jù)庫連接,釋放空閑時間超過最大空閑時間的數(shù)據(jù)庫連接來避免因為沒有釋放數(shù)據(jù)庫連接而引起的數(shù)據(jù)庫連接遺漏,這項技術能明顯提高對數(shù)據(jù)庫操作的性能

1、什么是數(shù)據(jù)庫連接池

就是一個容器持有多個數(shù)據(jù)庫連接,當程序需要操作數(shù)據(jù)庫的時候直接從池中取出連接,使用完之后再還回去,和線程池一個道理。

2、為什么需要連接池,好處是什么?

1、節(jié)省資源,如果每次訪問數(shù)據(jù)庫都創(chuàng)建新的連接,創(chuàng)建和銷毀都浪費系統(tǒng)資源

2、響應性更好,省去了創(chuàng)建的時間,響應性更好。

3、統(tǒng)一管理數(shù)據(jù)庫連接,避免因為業(yè)務的膨脹導致數(shù)據(jù)庫連接的無限增多。

4、便于監(jiān)控。

3、都有哪些連接池方案

數(shù)據(jù)庫連接池的方案有不少,我接觸過的連接池方案有:

1、C3p0

這個連接池我很久之前看到過,但是當時自己還很弱小,并沒有很好的理解,現(xiàn)在用的也很少了,爺爺級的連接池,可以忽略

2、DBCP (Database Connection Pool)

這個名字很直白,數(shù)據(jù)庫連接池,從Tomcat 5.5開始,Tomcat 內(nèi)置了DBCP的數(shù)據(jù)源實現(xiàn),所以可以非常方便地配置DBCP數(shù)據(jù)源。

3、Druid

阿里開源的數(shù)據(jù)源,這個也是前公司使用的數(shù)據(jù)源,Druid能夠提供強大的監(jiān)控和擴展功能,強項在于監(jiān)控。

4、HiKariCP

號稱最快的數(shù)據(jù)庫連接池,springboot2.0 也已經(jīng)把默認的數(shù)據(jù)源改為了HikariCP,強于性能。

4、連接池需要關注的參數(shù)

看下Druid 的數(shù)據(jù)庫連接池的配置

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${db.driverClassName}"/>
<property name="url" value="${db.url}"/>
<property name="username" value="${db.username}"/>
<property name="password" value="${db.password}"/>
<property name="initialSize" value="5"/>
<property name="maxIdle" value="10"/>
<property name="minIdle" value="5"/>
<property name="maxActive" value="15"/>
<property name="removeAbandoned" value="true"/>
<property name="removeAbandonedTimeout" value="180"/>
<property name="maxWait" value="3000"/>
<property name="validationQuery">
<value>SELECT 1</value>
</property>
<property name="testOnBorrow">
<value>true</value>
</property>
</bean>

1、driverClassName 使用的JDBC驅(qū)動的完整有效的Java類名,如連接 mysql com.mysql.cj.jdbc.Driver

2、jdbcUrl 數(shù)據(jù)庫的連接。如 jdbc:mysql://127.0.0.1:3306/mydatabase

3、username 你懂的,數(shù)據(jù)庫的用戶名,如 root

4、password 太直白了 ,數(shù)據(jù)庫的用戶密碼,如 p123456

5、initialSize 連接池創(chuàng)建的時候,自動創(chuàng)建的數(shù)據(jù)庫連接數(shù)量,建議 10-50足夠

6、maxIdle 最大空閑連接:連接池中允許保持空閑狀態(tài)的最大連接數(shù)量,超過的空閑連接將被釋放,如果設置為負數(shù)表示不限制,建議設置和 與initialSize相同,減少釋放和創(chuàng)建的性能損耗。

7、minIdle 最小空閑連接:連接池中容許保持空閑狀態(tài)的最小連接數(shù)量,低于這個數(shù)量將創(chuàng)建新的連接,如果設置為0則不創(chuàng)建

8、maxActive 最大同時激活的連接數(shù)量。

9、maxWait 如果連接池中沒有可用的連接,最大的等待時間,超時則沒有可用連接,單位毫秒,設置-1時表示無限等待,建議設置為100毫秒

10、testxxx 在對連接進行操作時,是否檢測連接的有效性,如 testOnBorrow 在申請連接的時候會先檢測連接的有效性,執(zhí)行validationQuery ,建議線上的把此配置設置為false,因為會影響性能。

11、validationQuery 檢查池中的連接是否仍可用的 SQL 語句,drui會連接到數(shù)據(jù)庫執(zhí)行該SQL, 如果正常返回,則表示連接可用,否則表示連接不可用,建議 select 1 from dual

5、怎么創(chuàng)建連接池,show me the code

5.1 pom.xml 加入依賴

<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>druid</artifactId>
     <version>1.2.6</version>
   </dependency>

5.2 配置文件

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
    <!-- 基本屬性 url、user、password -->
    <property name="driverClassName" value="${jdbc.driver}" />
    <property name="url" value="${jdbc_url}" />
    <property name="username" value="${jdbc_user}" />
    <property name="password" value="${jdbc_password}" />
    <!-- 配置監(jiān)控統(tǒng)計攔截的filters -->
    <property name="filters" value="stat" />
    <!-- 配置初始化大小、最小、最大 -->
    <property name="maxActive" value="20" />
    <property name="initialSize" value="1" />
    <property name="minIdle" value="1" />
    <!-- 配置獲取連接等待超時的時間 -->
    <property name="maxWait" value="60000" />    
    <!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閑連接,單位是毫秒 -->
    <property name="timeBetweenEvictionRunsMillis" value="60000" />
    <!-- 配置一個連接在池中最小生存的時間,單位是毫秒 -->
    <property name="minEvictableIdleTimeMillis" value="300000" />
    <property name="testWhileIdle" value="true" />
    <property name="testOnBorrow" value="false" />
    <property name="testOnReturn" value="false" />
    <!-- 打開PSCache,并且指定每個連接上PSCache的大小 -->
    <property name="poolPreparedStatements" value="true" />
    <property name="maxOpenPreparedStatements" value="20" />
</bean>
<!--配置jdbcTemplate,如果userDao沒有extends JdbcDaoSupport-->
<<bean id="jdbcTemplate" class="com.springframework.jdbc.core.JdbcTemplate">
       <property name="dataSource" ref="dataSource"/>
   </bean>
    <bean id="userDao" class="com.caraway.dao.UserDao">
       <property name="dataSource" ref="jdbcTemplate"/>
   </bean>

5.3 調(diào)用

public static void main(String[] args) {
       ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
       UserDao userDao = (UserDao) context.getBean("userDao");
       User user = new User();
       user.setUsername("香菜");
       user.setPassowrd("root");
       userDao.saveUser(user);
  }

6、總結(jié)

連接池和線程池的道理是一樣的,池化資源,降低生成和銷毀的損耗,提高系統(tǒng)的響應。

今天的重點還是要理解線程池的原理,并且記住大部分的配置參數(shù),各個線程池雖然實現(xiàn)的細節(jié)不同,但是道理是相通的,掌握一個就掌握了所有,舉一反三。

希望大家多多關注腳本之家的其他內(nèi)容!

相關文章

  • java實現(xiàn)的導出Excel工具類實例

    java實現(xiàn)的導出Excel工具類實例

    這篇文章主要介紹了java實現(xiàn)的導出Excel工具類,結(jié)合具體實例形式分析了java導出Excel導出并生成Excel表格相關操作技巧與注意事項,需要的朋友可以參考下
    2017-10-10
  • MyBatis源碼解析之Transaction事務模塊

    MyBatis源碼解析之Transaction事務模塊

    這篇文章主要介紹了MyBatis源碼解析之Transaction事務模塊,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 詳解Java在redis中進行對象的緩存

    詳解Java在redis中進行對象的緩存

    這篇文章主要介紹了Java在redis中進行對象的緩存,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • Java編寫實現(xiàn)九宮格應用

    Java編寫實現(xiàn)九宮格應用

    這篇文章主要為大家詳細介紹了Java編寫實現(xiàn)九宮格應用,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • java時間格式的簡單整理

    java時間格式的簡單整理

    這篇文章主要介紹了java時間格式的簡單整理,文中通過示例介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考一下
    2019-06-06
  • Java實現(xiàn)文件上傳至服務器的方法

    Java實現(xiàn)文件上傳至服務器的方法

    這篇文章主要為大家詳細介紹了Java實現(xiàn)文件上傳至服務器的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Java中的private、protected、public和default的區(qū)別(詳解)

    Java中的private、protected、public和default的區(qū)別(詳解)

    下面小編就為大家?guī)硪黄狫ava中的private、protected、public和default的區(qū)別(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • 極簡的Resty服務端和客戶端RESTful框架

    極簡的Resty服務端和客戶端RESTful框架

    這篇文章主要為大家介紹了極簡的Resty服務端和客戶端RESTful框架的好處及作用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-03-03
  • Java堆&優(yōu)先級隊列示例講解(上)

    Java堆&優(yōu)先級隊列示例講解(上)

    這篇文章主要通過示例詳細為大家介紹Java中的堆以及優(yōu)先級隊列,文中的示例代碼講解詳細,對我們了解java有一定幫助,需要的可以參考一下
    2022-03-03
  • Myeclipse清理項目緩存的幾大方法

    Myeclipse清理項目緩存的幾大方法

    今天小編就為大家分享一篇關于Myeclipse清理項目緩存的幾大方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12

最新評論

东明县| 咸阳市| 福鼎市| 万载县| 金乡县| 潞城市| 定日县| 鹿泉市| 建阳市| 雅安市| 苍山县| 巫山县| 离岛区| 连山| 峨眉山市| 乐业县| 彭泽县| 龙海市| 常熟市| 浙江省| 奉新县| 江源县| 淮安市| 土默特左旗| 榕江县| 鄂伦春自治旗| 平湖市| 兴化市| 济阳县| 仙桃市| 廉江市| 庄河市| 新和县| 益阳市| 七台河市| 新郑市| 大同市| 建宁县| 治县。| 肥乡县| 灵川县|