詳細(xì)解讀Druid數(shù)據(jù)庫連接池的使用
概述
1.數(shù)據(jù)庫連接池是個(gè)容器,負(fù)責(zé)分配、管理數(shù)據(jù)庫連接(Connection);
2.它允許應(yīng)用程序重復(fù)使用一個(gè)現(xiàn)有的數(shù)據(jù)庫連接,而不是再重新建立一個(gè);
3.釋放空閑時(shí)間超過最大空閑時(shí)間的數(shù)據(jù)庫連接來避免因?yàn)闆]有釋放數(shù)據(jù)庫連接而引起的數(shù)據(jù)庫連接遺漏;
可以類比線程池去理解。
優(yōu)點(diǎn)
1.資源重用
2.提升系統(tǒng)響應(yīng)速度
3.避免數(shù)據(jù)庫連接遺漏
連接池是在一開始就創(chuàng)建好了一些連接(Connection)對(duì)象存儲(chǔ)起來。用戶需要連接數(shù)據(jù)庫時(shí),不需要自己創(chuàng)建連接,而只需要從連接池中獲取一個(gè)連接進(jìn)行使用,使用完畢后再將連接對(duì)象歸還給連接池;這樣就可以起到資源重用,也節(jié)省了頻繁創(chuàng)建連接銷毀連接所花費(fèi)的時(shí)間,從而提升了系統(tǒng)響應(yīng)的速度。
常見的數(shù)據(jù)庫連接池: DBCP、C3P0、Druid
我們現(xiàn)在使用更多的是Druid,它的性能比其他兩個(gè)會(huì)好一些。
Druid連接池是阿里巴巴開源的數(shù)據(jù)庫連接池項(xiàng)目,功能強(qiáng)大,性能優(yōu)秀,是Java語言最好的數(shù)據(jù)庫連接池之一。
數(shù)據(jù)庫連接池實(shí)現(xiàn)
標(biāo)準(zhǔn)接口:DataSource
官方(SUN) 提供的數(shù)據(jù)庫連接池標(biāo)準(zhǔn)接口,由第三方組織實(shí)現(xiàn)此接口。該接口提供了獲取連接的功能:Connection getConnection()
那么以后就不需要通過 DriverManager
對(duì)象獲取 Connection
對(duì)象,而是通過連接池(DataSource)獲取 Connection
對(duì)象。
Driud使用流程
1.導(dǎo)入jar包 druid-1.1.12.jar
2.定義配置文件 druid.properties
3.加載配置文件
4.獲取數(shù)據(jù)庫連接池對(duì)象
5.獲取連接
代碼示例
配置文件druid.properties
driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/sd?useSSL=false&useServerPrepStmts=true username=root password=root # 初始連接數(shù) initialSize=5 # 最大連接數(shù) maxActive=10 # 最大等待時(shí)間 maxWait=3000
Java代碼
public static void main(String[] args) throws Exception { //1.導(dǎo)入jar包 //2.定義配置文件 //3. 加載配置文件 Properties prop=new Properties(); prop.load(new FileInputStream("C:\\Users\\斯文\\Desktop\\Java\\demo\\index\\src\\druid.properties")); //4. 獲取連接池對(duì)象 DataSource dataSource= DruidDataSourceFactory.createDataSource(prop); //5. 獲取數(shù)據(jù)庫連接 Connection Connection conn=dataSource.getConnection(); //6.操作數(shù)據(jù)庫 String sql = "select * from st"; Statement stmt=conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println(id + " " + name + " " + age); } }
到此這篇關(guān)于詳細(xì)解讀Druid數(shù)據(jù)庫連接池的使用的文章就介紹到這了,更多相關(guān)Druid數(shù)據(jù)庫連接池內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
大數(shù)據(jù)Kafka:消息隊(duì)列和Kafka基本介紹
本文對(duì)消息隊(duì)列的應(yīng)用場景,優(yōu)缺點(diǎn),消息隊(duì)列的兩種方式,常見的消息隊(duì)列產(chǎn)品以及Kafka的特點(diǎn)和應(yīng)用場景做了詳細(xì)的講解,需要的朋友可以參考下,希望可以對(duì)大家有所幫助2021-08-08淺談java中replace()和replaceAll()的區(qū)別
這篇文章主要介紹了java中replace()和replaceAll()的區(qū)別,兩者都是常用的替換字符的方法,感興趣的小伙伴們可以參考一下2015-11-11零基礎(chǔ)搭建boot+MybatisPlus的詳細(xì)教程
這篇文章主要介紹了零基礎(chǔ)搭建boot+MybatisPlus,首先需要?jiǎng)?chuàng)建數(shù)據(jù)庫表和創(chuàng)建boot項(xiàng)目使用mybatisplus操作數(shù)據(jù)庫,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03Java中實(shí)現(xiàn)漢字生成拼音首拼和五筆碼
這篇文章主要介紹了Java中實(shí)現(xiàn)漢字生成拼音首拼和五筆碼方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03