日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JDBC连接池C3P0,druid

發布時間:2024/4/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JDBC连接池C3P0,druid 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據庫連接池

什么是數據庫連接池:

  • 將多個連接對象放在一個類似于list的集合中,做到需要用到連接的時候就去池子中獲取Connection連接對象,不用就放回池子中,不用頻繁的獲取連接池,關閉連接池.而是用時去池子中拿,不用就還回去

連接池的作用:

  • 避免重復創建鏈接, 提升程序的執行效率

C3P0連接池

  • 導包

    c3p0-0.9.5.2.jar
    mchange-commons-java-0.2.12.jar
    https://mvnrepository.com,可以在maven網站去下載

  • 配置C3P0配置信息


  • 注意:配置文件名稱一定要是:c3p0-config.xml,并且在src目錄下

    <c3p0-config><!-- 使用默認的配置讀取連接池對象 --><default-config><!-- 連接參數 --><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql://192.168.93.132:3306/jdbc</property><property name="user">root</property><property name="password">root</property><!-- 連接池參數 --><!--初始化的連接數量--><property name="initialPoolSize">5</property><!--最大連接數量--><property name="maxPoolSize">10</property><!--超時時間--><property name="checkoutTimeout">3000</property></default-config> </c3p0-config> --注意-- 配置信息中的ip地址端口號,用戶名,密碼要和你mysql安裝服務器的ip和用戶名密碼匹配
  • 編寫代碼測試連接池以及連接數量
  • public class C3P0Test {public static void main(String[] args) throws Exception{//1.創建c3p0的數據庫連接池對象DataSource dataSource = new ComboPooledDataSource();//2.循環11次,從連接池中獲取11次連接對象,看看是否有重復的,有,就說明是從池子中獲取的連接對象for(int i = 1; i <= 11; i++) {Connection con = dataSource.getConnection();System.out.println(i + ":" + con);//當循環第5次的時候,把5次的這個連接對象還回連接池if(i == 5) {con.close();}}} }

    運行結果

    總結

    由上面的代碼案列得知,當循環到第5次獲取連接對象的時候,就把鏈接對象還回給鏈接池了,后面鏈接就會拿到上一次還回去的對象,因為我們前面配置文件配置的是最大連接數量10,我們測試循環拿11次,如果不還回去就會報如下錯誤:因為最大連接數量是10,第11個獲取 連接對象的時候發現池子里沒有連接對象,就會等待我們上面配置文件中設置的多少時間.

    關于C3P0就先了解到這里

    druid連接池:

  • 導包

    去maven網站搜索druid下載復制在lib目錄下導入即可

  • 配置druid的配置文件(是properties配置文件)

    在src目錄下,名字隨便取:我這里叫:druid.properties

  • driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://192.168.93.132:3306/jdbc username=root password=root # 初始化連接數量 initialSize=5 # 最大連接數量 maxActive=10 # 超時時間 maxWait=3000 --注意-- 配置信息中的ip地址端口號,用戶名,密碼要和你mysql安裝服務器的ip和用戶名密碼匹配

    3.編寫代碼測試:

    我這里druid測試的話是執行一條查詢語句,你也可以向上面一樣測試下連接對象,獲取超過了最大連接次數,然后看看有沒有重復的對象

    public class DruidTest {public static void main(String[] args) throws Exception{//1.通過連接池工具類獲取一個數據庫連接Connection con = DataSourceUtils.getConnection();//通過連接對象獲取預編譯語句對象String sql = "SELECT * FROM student";PreparedStatement pst = con.prepareStatement(sql);//2.執行sql語句,接收結果集ResultSet rs = pst.executeQuery();//3.處理結果集while(rs.next()) {System.out.println(rs.getInt("sid") + "\t" + rs.getString("name") + "\t" + rs.getInt("age") + "\t" + rs.getDate("birthday"));}//4.釋放資源DataSourceUtils.close(con,pst,rs);} }

    ** 執行結果**

    超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

    總結

    以上是生活随笔為你收集整理的JDBC连接池C3P0,druid的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。