电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:44日期:2022-08-11 08:39:30
目錄1、什么是數據庫連接池2、為什么需要連接池,好處是什么?3、都有哪些連接池方案4、連接池需要關注的參數5、怎么創建連接池,show me the code6、總結1、什么是數據庫連接池

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

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

1、節省資源,如果每次訪問數據庫都創建新的連接,創建和銷毀都浪費系統資源

2、響應性更好,省去了創建的時間,響應性更好。

3、統一管理數據庫連接,避免因為業務的膨脹導致數據庫連接的無限增多。

4、便于監控。

3、都有哪些連接池方案

數據庫連接池的方案有不少,我接觸過的連接池方案有:

1、C3p0

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

2、DBCP (Database Connection Pool)

這個名字很直白,數據庫連接池,從Tomcat 5.5開始,Tomcat 內置了DBCP的數據源實現,所以可以非常方便地配置DBCP數據源。

3、Druid

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

4、HiKariCP

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

4、連接池需要關注的參數

看下Druid 的數據庫連接池的配置

<bean 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驅動的完整有效的Java類名,如連接 mysql com.mysql.cj.jdbc.Driver

2、jdbcUrl 數據庫的連接。如 jdbc:mysql://127.0.0.1:3306/mydatabase

3、username 你懂的,數據庫的用戶名,如 root

4、password 太直白了 ,數據庫的用戶密碼,如 p123456

5、initialSize 連接池創建的時候,自動創建的數據庫連接數量,建議 10-50足夠

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

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

8、maxActive 最大同時激活的連接數量。

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

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

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

5、怎么創建連接池,show me the code5.1 pom.xml 加入依賴

<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.6</version> </dependency>5.2 配置文件

<bean 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}' /> <!-- 配置監控統計攔截的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 class='com.springframework.jdbc.core.JdbcTemplate'> <property name='dataSource' ref='dataSource'/> </bean> <bean class='com.caraway.dao.UserDao'> <property name='dataSource' ref='jdbcTemplate'/> </bean>5.3 調用

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、總結

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

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

希望大家多多關注好吧啦網的其他內容!

標簽: Java
主站蜘蛛池模板: 润滑油加盟_润滑油厂家_润滑油品牌-深圳市沃丹润滑科技有限公司 琉璃瓦-琉璃瓦厂家-安徽盛阳新型建材科技有限公司 | 武汉高低温试验箱_恒温恒湿试验箱厂家-武汉蓝锐环境科技有限公司 | 厚壁钢管-厚壁无缝钢管-小口径厚壁钢管-大口径厚壁钢管 - 聊城宽达钢管有限公司 | 密集架-密集柜厂家-智能档案密集架-自动选层柜订做-河北风顺金属制品有限公司 | 【铜排折弯机,钢丝折弯成型机,汽车发泡钢丝折弯机,线材折弯机厂家,线材成型机,铁线折弯机】贝朗折弯机厂家_东莞市贝朗自动化设备有限公司 | 风电变桨伺服驱动器-风电偏航变桨系统-深圳众城卓越科技有限公司 | 手持式线材张力计-套帽式风量罩-深圳市欧亚精密仪器有限公司 | 防水试验机_防水测试设备_防水试验装置_淋雨试验箱-广州岳信试验设备有限公司 | 万濠投影仪_瑞士TRIMOS高度仪_尼康投影仪V12BDC|量子仪器 | 硬齿面减速机_厂家-山东安吉富传动设备股份有限公司 | 污泥烘干机-低温干化机-工业污泥烘干设备厂家-焦作市真节能环保设备科技有限公司 | 山东螺杆空压机,烟台空压机,烟台开山空压机-烟台开山机电设备有限公司 | 深圳湾1号房价_深圳湾1号二手房源| MVR蒸发器厂家-多效蒸发器-工业废水蒸发器厂家-康景辉集团官网 | 郑州外墙清洗_郑州玻璃幕墙清洗_郑州开荒保洁-河南三恒清洗服务有限公司 | 行吊_电动单梁起重机_双梁起重机_合肥起重机_厂家_合肥市神雕起重机械有限公司 | 恒压供水控制柜|无负压|一体化泵站控制柜|PLC远程调试|MCGS触摸屏|自动控制方案-联致自控设备 | 岩石钻裂机-液压凿岩机-劈裂机-挖改钻_湖南烈岩科技有限公司 | 球形钽粉_球形钨粉_纳米粉末_难熔金属粉末-广东银纳官网 | 广州物流公司_广州货运公司_广州回程车运输 - 万信物流 | 市政路灯_厂家-淄博信达电力科技有限公司 | 科昊仪器超纯水机系统-可成气相液氮罐-美菱超低温冰箱-西安昊兴生物科技有限公司 | 博莱特空压机|博莱特-阿特拉斯独资空压机品牌核心代理商 | 下水道疏通_管道疏通_马桶疏通_附近疏通电话- 立刻通 | 国际船舶网 - 船厂、船舶、造船、船舶设备、航运及海洋工程等相关行业综合信息平台 | 牛奶检测仪-乳成分分析仪-北京海谊| 酒瓶_酒杯_玻璃瓶生产厂家_徐州明政玻璃制品有限公司 | 飞飞影视_热门电影在线观看_影视大全 | 折弯机-刨槽机-数控折弯机-数控刨槽机-数控折弯机厂家-深圳豐科机械有限公司 | 【ph计】|在线ph计|工业ph计|ph计厂家|ph计价格|酸度计生产厂家_武汉吉尔德科技有限公司 | 工业胀紧套_万向节联轴器_链条-规格齐全-型号选购-非标订做-厂家批发价格-上海乙谛精密机械有限公司 | 电子万能试验机_液压拉力试验机_冲击疲劳试验机_材料试验机厂家-济南众标仪器设备有限公司 | 有机废气处理-rto焚烧炉-催化燃烧设备-VOC冷凝回收装置-三梯环境 | 成都亚克力制品,PVC板,双色板雕刻加工,亚克力门牌,亚克力标牌,水晶字雕刻制作-零贰捌广告 | YT保温材料_YT无机保温砂浆_外墙保温材料_南阳银通节能建材高新技术开发有限公司 | RS系列电阻器,RK_RJ启动调整电阻器,RQ_RZ电阻器-上海永上电器有限公司 | 碎石机设备-欧版反击破-欧版颚式破碎机(站)厂家_山东奥凯诺机械 高低温试验箱-模拟高低温试验箱订制-北京普桑达仪器科技有限公司【官网】 | 德国进口电锅炉_商用电热水器_壁挂炉_电采暖器_电热锅炉[德国宝] | 凝胶成像仪,化学发光凝胶成像系统,凝胶成像分析系统-上海培清科技有限公司 | 广东恩亿梯电源有限公司【官网】_UPS不间断电源|EPS应急电源|模块化机房|电动汽车充电桩_UPS电源厂家(恩亿梯UPS电源,UPS不间断电源,不间断电源UPS) | 空调风机,低噪声离心式通风机,不锈钢防爆风机,前倾皮带传动风机,后倾空调风机-山东捷风风机有限公司 |