• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • c3P0

    標簽: Java

    數據庫連接池

    在這里插入圖片描述

    針對Connection部分的優化

    在這里插入圖片描述

    配置文件里設置

    <c3p0-config>
        <named-config name="testc3p0">
            <!-- 數據源信息 -->
            <property name="user">root</property>
            <property name="password">123456</property>
            <property name="driverClass">com.mysql.cj.jdbc.Driver</property>
            <property name="jdbcUrl">jdbc:mysql://localhost:3306/demo?useUnicode=true&amp;characterEncoding=utf8&amp;serverTimezone=GMT%2B8&amp;useSSL=false</property>
        </named-config>
    </c3p0-config>
    
    package com.chenny;
    
    import com.mchange.v2.c3p0.ComboPooledDataSource;
    
    import java.sql.SQLException;
    
    public class Test2 {
        public static void main(String[] args) {
            ComboPooledDataSource dataSource = new ComboPooledDataSource("testc3p0");
            try {
                System.out.println(dataSource.getConnection());
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    

    手寫

    package com.chenny.utils;
    
    import com.mchange.v2.c3p0.ComboPooledDataSource;
    
    import java.beans.PropertyVetoException;
    import java.sql.SQLException;
    
    public class C3P0Test {
        public static void main(String[] args) {
            ComboPooledDataSource dataSource = new ComboPooledDataSource();
            try {
                dataSource.setDriverClass("com.mysql.cj.jdbc.Driver");
                dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false");
                dataSource.setUser("root");
                dataSource.setPassword("123456");
                dataSource.setInitialPoolSize(20);
                dataSource.setMaxPoolSize(40);
                dataSource.setAcquireIncrement(5);
                dataSource.setMinPoolSize(2);
                System.out.println("C3P0的連接對象: "+dataSource.getConnection());
                System.out.println("傳統的連接對象: "+ JDBCTools.getConnection());
            } catch (PropertyVetoException e) {
                e.printStackTrace();
            }catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    

    JDBC如何操作事務

    事務就是將完成同一個需求的多條SQL語句看成一個整體,要么全部執行成功,要么一條也不執行。

    事務的四大特性
    • 原子性
    • 隔離性
    • 一致性
    • 持久性

    數據庫連接池

    傳統的JDBC開發方式:
    • 建立數據庫連接

    • 執行SQL語句

    • 斷開數據庫連接

    普通的JDBC數據庫連接使用DriverManager來獲取,每次創建連接都需要向數據庫申請獲取連接,驗證用戶名和密碼,比較消耗資源,連接對象的獲取需要耗費一定的資源。
    執行完SQL語句中華直接斷開連接,這樣的方式會消耗大量的資源和時間,數據庫連接資源并沒有得到良好的重復利用。

    數據庫連接池可以解決這個問題,基本思想是為數據庫建立一個緩沖池,預先向緩沖池中放入一定數量的數據庫連接對象,當需要獲取數據庫連接時,只需要從緩沖池中取出一個來使用,用完之后不要斷開,而是還回到緩沖池中,供下一次請求使用,做到資源的重復利用。允許請求重復使用一個現有的數據庫連接對象,而不是重新創建一個。
    當數據庫連接池中沒有空閑的連接對象時,請求會進入等待隊列,等待其他線程釋放連接。

    JDBC的數據庫連接池如何使用

    JDBC中提供了javax.sql.DataSource來完成數據庫連接池的使用,DataSource是一個接口,只定義了功能,但是沒有實現,實際開發中使用的實現是C3P0。

    版權聲明:本文為qq_43776742原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/qq_43776742/article/details/106188371

    智能推薦

    C3P0連接池

    在看完dbcp連接池操作后,我們來看一下c3p0進行數據庫連接池操作。 c3p0和dbcp其實差不多,都需要先導入jar包,在配置文件,再寫類并測試。 首先需要導入jar包,一個是c3p0-0.9.5.2.jar,還有一個是mchange-commons-java-0.2.11.jar,這兩個包導入放到lib文件夾下面就可以。 接下來就是配置文件。在src下面創建一個xml文件,文件名字必須為 而...

    C3P0連接池

     我們現實生活中每日三餐。我們并不會吃一餐飯就將碗丟掉,而是吃完飯后將碗放到碗柜中,下一餐接著使用。目的是重復利用碗,我們的數據庫連接也可以重復使用,可以減少數據庫連接的創建次數。提高數據庫連接對象的使用率。 C3P0連接池 概念 連接池是創建和管理數據庫連接的緩沖池技術。連接池就是一個容器,連接池中保存了一些數據庫連接,這些連接是可以重復使用的。 沒有連接池的現狀  之前JD...

    C3P0默認配置文件

    【推薦】2019 Java 開發者跳槽指南.pdf(吐血整理) >>> c3p0是一個訪問數據庫的封裝jar包,它可以提高我們對數據庫的訪問效率!下面我們介紹一下對于一個新手怎么開始使用c3p0.   首先我們需要下載一個c3p0的jar包,在官網可以下載!(下載量最多的) https://sourceforge.net/projects/c3p0/files/c3p0...

    c3p0和dbcp的簡單使用

    實際開發中“獲得連接”或“釋放資源”是非常消耗系統資源的兩個過程,為了解決此類性能問題,通常情況我們采用連接池技術,來共享連接Connection。這樣我們就不需要每次都創建連接、釋放連接了,這些操作都交給了連接池 1.1     連接池概述   概念 用池來管理Connection,這樣可...

    JDBC由淺入深解析(C3P0)(DBUtils)

    1.自定義鏈接池         首先是最不常用的連接池,但對于新手理解JDBC很友好的         只需要在項目導入java和數據庫鏈接的jar包即可,導入之后:         1.首先定義一個文件夾,格式為XX...

    猜你喜歡

    C3P0連接池

    配置文件 一.未使用工具類 1.導入jar包 2.配置文件 3.測試 運行結果: 二.使用工具類 1.編寫工具類: 2.測試 運行結果:...

    C3P0和DBCP連接池

    C3P0連接池 導包 要配置一個c3p0-config.xml C3P0Demo: 工具類: DBCP連接池 導包: 要配置一個dbcp-config.properties文件 DBCPDemo: 工具類:...

    C3P0 與 DBCP 的基礎使用

    此文用于自我鞏固與分享,也為了與 “JDBC進化史一文”  進行銜接 本文所有用到的jar包都會放在CSDN下載區,方便下載 鏈接:https://download.csdn.net/download/u013781343/10358284 首先我們來看C3P0連接池的使用 在使用C3P0連接池之前需要引入相關jar包 同時不要忘記,還需要引入C3P0配置文件,相...

    數組刪除其中某個對象的方法

    數組刪除其中的對象或元素,在前端是比較常見的需求。 我現在比較常用的方法如下: 這種方法只適合刪除具有唯一標識的對象。 有沒有想要脫單的小伙伴,加入我們的脫單星球,認識更多優秀的小哥哥小姐姐 特此聲明,星球是免費的,但是創建星球的時候說是必須輸入金額,所以只能先私聊,我再加你免費加入!...

    圖床搭建以及圖床工具的使用

    為什么要用圖床和圖床工具? 比較下面三種md中的圖片url地址(均免費),你會使用哪一種? 選1?由于是本地路徑,文檔分享后給其他人打開后很可能顯示圖片加載失敗。 選2?雖然分享后可以顯示圖片,但能保證加載速度? 選3?我肯定選這種,即兼容2的瀏覽器訪問,又能保證訪問速度。 這樣就可以回答上面的問題了!保證瀏覽器訪問要用圖床,保證加載速度要用圖床工具,又不花錢想想就開心。 除此之外本篇博客還會講解...

    精品国产乱码久久久久久蜜桃不卡