詳細解讀Druid數(shù)據(jù)庫連接池的使用
概述
1.數(shù)據(jù)庫連接池是個容器,負責分配、管理數(shù)據(jù)庫連接(Connection);
2.它允許應(yīng)用程序重復(fù)使用一個現(xiàn)有的數(shù)據(jù)庫連接,而不是再重新建立一個;
3.釋放空閑時間超過最大空閑時間的數(shù)據(jù)庫連接來避免因為沒有釋放數(shù)據(jù)庫連接而引起的數(shù)據(jù)庫連接遺漏;
可以類比線程池去理解。
優(yōu)點
1.資源重用
2.提升系統(tǒng)響應(yīng)速度
3.避免數(shù)據(jù)庫連接遺漏
連接池是在一開始就創(chuàng)建好了一些連接(Connection)對象存儲起來。用戶需要連接數(shù)據(jù)庫時,不需要自己創(chuàng)建連接,而只需要從連接池中獲取一個連接進行使用,使用完畢后再將連接對象歸還給連接池;這樣就可以起到資源重用,也節(jié)省了頻繁創(chuàng)建連接銷毀連接所花費的時間,從而提升了系統(tǒng)響應(yīng)的速度。
常見的數(shù)據(jù)庫連接池: DBCP、C3P0、Druid
我們現(xiàn)在使用更多的是Druid,它的性能比其他兩個會好一些。
Druid連接池是阿里巴巴開源的數(shù)據(jù)庫連接池項目,功能強大,性能優(yōu)秀,是Java語言最好的數(shù)據(jù)庫連接池之一。
數(shù)據(jù)庫連接池實現(xiàn)
標準接口:DataSource
官方(SUN) 提供的數(shù)據(jù)庫連接池標準接口,由第三方組織實現(xiàn)此接口。該接口提供了獲取連接的功能:Connection getConnection()
那么以后就不需要通過 DriverManager
對象獲取 Connection
對象,而是通過連接池(DataSource)獲取 Connection
對象。
Driud使用流程
1.導(dǎo)入jar包 druid-1.1.12.jar
2.定義配置文件 druid.properties
3.加載配置文件
4.獲取數(shù)據(jù)庫連接池對象
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 # 最大等待時間 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. 獲取連接池對象 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)于詳細解讀Druid數(shù)據(jù)庫連接池的使用的文章就介紹到這了,更多相關(guān)Druid數(shù)據(jù)庫連接池內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
大數(shù)據(jù)Kafka:消息隊列和Kafka基本介紹
本文對消息隊列的應(yīng)用場景,優(yōu)缺點,消息隊列的兩種方式,常見的消息隊列產(chǎn)品以及Kafka的特點和應(yīng)用場景做了詳細的講解,需要的朋友可以參考下,希望可以對大家有所幫助2021-08-08淺談java中replace()和replaceAll()的區(qū)別
這篇文章主要介紹了java中replace()和replaceAll()的區(qū)別,兩者都是常用的替換字符的方法,感興趣的小伙伴們可以參考一下2015-11-11零基礎(chǔ)搭建boot+MybatisPlus的詳細教程
這篇文章主要介紹了零基礎(chǔ)搭建boot+MybatisPlus,首先需要創(chuàng)建數(shù)據(jù)庫表和創(chuàng)建boot項目使用mybatisplus操作數(shù)據(jù)庫,本文通過示例代碼給大家介紹的非常詳細,需要的朋友可以參考下2022-03-03