suchen
HeimJavaJavaBaseJava-Betriebsdatenbank – Verwenden Sie den Verbindungspool, um eine Verbindung zur Datenbank herzustellen

Java-Betriebsdatenbank – Verwenden Sie den Verbindungspool, um eine Verbindung zur Datenbank herzustellen

Traditionelle Methode und Verbindungspooling-Methode

Schritte der traditionellen Methode

Verwenden Sie die traditionelle Methode in JDBC wird in Java verwendet, um eine Verbindung zur Datenbank herzustellen und einen Datenbankvorgang abzuschließen. Im Allgemeinen gibt es die folgenden Schritte:

1.

2. Verbindung herstellen.

3. SQL-Anweisung ausführen.

4. Trennen Sie die Verbindung.

5. Nachteile der herkömmlichen Methode

Jeder Vorgang in der Datenbank muss eine Verbindung herstellen, und das erhaltene Verbindungsobjekt wird in den Speicher geladen, was viel Speicher und Zeit verbraucht. . Wenn es viele Vorgänge gibt, die in kurzer Zeit einen Verbindungsaufbau erfordern, werden viele Systemressourcen beansprucht und sogar zum Absturz des Servers führen.

Entsprechend dem Herstellen einer Verbindung müssen Sie die Verbindung bei jeder Verwendung manuell freigeben. Wenn Sie vergessen, die Verbindung freizugeben, oder das Programm sie aufgrund einer Ausnahme nicht freigeben kann, führt dies zu einem Speicherverlust .

Darüber hinaus kann die herkömmliche Methode die Anzahl der Verbindungen nicht steuern, wenn zu viele Personen verbunden sind, was zu einer unbegrenzten Erstellung von Verbindungsobjekten führt, was zu übermäßigem Speicheraufwand und Serverabsturz führt.

(Empfohlenes Video: Java-Video-Tutorial)

Schritte des Verbindungspools

1. Erstellen Sie einen Verbindungspool und konfigurieren Sie ihn die Verbindungseigenschaft.

2. Verwenden Sie einen Verbindungspool, um eine Verbindung herzustellen.

Vorteile des Verbindungspools

Jedes Mal, wenn Sie eine Verbindung zur Datenbank herstellen müssen, müssen Sie keine Verbindung herstellen, sondern diese über den Verbindungspool beziehen stellt die Verbindung her.

Nachdem Sie die Verbindung verwendet haben, müssen Sie die Verbindung nicht manuell freigeben, sondern lassen Sie den Verbindungspool die Verbindung freigeben.

Die Anzahl der Verbindungen kann über den Verbindungspool gesteuert werden. Die Verbindungen im Verbindungspool können mehrfach wiederverwendet werden, wodurch das Problem der unbegrenzten Verbindungserstellung vermieden wird.

Verbindungspool verwenden

C3P0-Datenbankverbindungspool verwenden

JAR-Paket importieren:

c3p0-0.9.5.2.jar

Im Code-Stammverzeichnis des Aktuelles Projekt Erstellen Sie unter src eine neue Konfigurationsdatei mit dem Namen c3p0-config.xml. Der Inhalt lautet wie folgt:

<c3p0-config>
    <!-- 连接名称 -->
    <named-config name="mysql">
        <!-- 接数据库的驱动类名 -->
        <property name="driverClass">com.mysql.jdbc.Driver</property>
        <!-- 连接属性 -->
        <property name="jdbcUrl">jdbc:mysql://192.168.35.128:3306/demo</property>
        <property name="user">root</property>
        <property name="password">123456</property>
        <!-- 当连接池用完时等待获取新连接的时间,超时后将抛出SQLException,单位毫秒,如设为0则无限期等待。默认为0。 -->
        <property name="checkoutTimeout">5000</property>
        <!-- 当连接用尽后,一次获取的连接个数 -->
        <property name="acquireIncrement">2</property>
        <!-- 初始连接数 -->
        <property name="initialPoolSize">1</property>
        <!-- 最小连接数 -->
        <property name="minPoolSize">3</property>
        <!-- 最大连接数 -->
        <property name="maxPoolSize">5</property>
    </named-config>
</c3p0-config>

Verwenden Sie DBCP Datenbankverbindungspool

Importieren Sie das JAR-Paket:

public class TestDataPool {
    // 根据配置文件里的名称创建连接池
    public static ComboPooledDataSource cpds = new ComboPooledDataSource("mysql");
    
    /**
     * 主程序
     */
    public static void main(String[] args) {
        // 模拟多次对数据库的查询操作
        for (int i = 0; i < 6; i++) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    select();
                }
            }, "线程" + i).start();
        }
    }
    
    /**
     * 查询程序
     */
    public static void select() {
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        // 获取连接并执行SQL
        try {
            conn = cpds.getConnection();
            pstmt = conn.prepareStatement("select * from student where id = 906");
            rs = pstmt.executeQuery();
            while (rs.next()) {
                System.out.println(Thread.currentThread().getName() + "\t" + rs.getString(1) + "\t" + rs.getString(2) + "\t" + rs.getString("address"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 释放资源
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                pstmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

Erstellen Sie eine neue Konfigurationsdatei mit dem Namen dbcp.properties im Code-Stammverzeichnis src des aktuellen Projekts. Der Dateiname muss mit dem übereinstimmen Der im Code referenzierte Dateiname lautet wie folgt:

 commons-dbcp-1.4.jar2 commons-pool-1.5.5.jar

Programmcode:

# 接数据库的驱动类名
driverClassName=com.mysql.jdbc.Driver
# 连接属性
url=jdbc:mysql://192.168.35.128:3306/demo
username=root
password=123456
# 初始化连接数
initialSize=10
# 最大连接数
maxActive=15

Das obige ist der detaillierte Inhalt vonJava-Betriebsdatenbank – Verwenden Sie den Verbindungspool, um eine Verbindung zur Datenbank herzustellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Dieser Artikel ist reproduziert unter:博客园. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Was sind verschiedene Algorithmen für die Müllsammlung in Java (seriell, parallel, CMS, G1, ZGC)?Was sind verschiedene Algorithmen für die Müllsammlung in Java (seriell, parallel, CMS, G1, ZGC)?Mar 14, 2025 pm 05:06 PM

In dem Artikel werden verschiedene Algorithmen für Java -Müllsammlungen (seriell, parallel, CMS, G1, ZGC), deren Leistungsauswirkungen und Eignung für Anwendungen mit großen Haufen erörtert.

Was ist die Java Virtual Machine (JVM) und wie funktioniert sie intern?Was ist die Java Virtual Machine (JVM) und wie funktioniert sie intern?Mar 14, 2025 pm 05:05 PM

In dem Artikel werden die Java Virtual Machine (JVM) erörtert, in der die Rolle bei der Ausführung von Java -Programmen auf verschiedenen Plattformen aufgeführt ist. Es erläutert die internen Prozesse, Schlüsselkomponenten, das Speichermanagement, die Müllsammlung und das Leistungsoptimizatio des JVM

Wie benutze ich Javas Nashorn -Engine zum Scripting mit JavaScript?Wie benutze ich Javas Nashorn -Engine zum Scripting mit JavaScript?Mar 14, 2025 pm 05:00 PM

Javas Nashorn Engine ermöglicht JavaScript Scripting in Java -Apps. Zu den wichtigsten Schritten gehören das Einrichten von Nashorn, das Verwalten von Skripten und die Optimierung der Leistung. Hauptfragen beinhalten Sicherheit, Speicherverwaltung und zukünftige Kompatibilität aufgrund von Nashorns Deprecus

Wie benutze ich Javas Versuchserklärung für das automatische Ressourcenmanagement?Wie benutze ich Javas Versuchserklärung für das automatische Ressourcenmanagement?Mar 14, 2025 pm 04:59 PM

Javas Try-with-Ressources vereinfacht das Ressourcenmanagement, indem Ressourcen wie Dateiströme oder Datenbankverbindungen automatisch geschlossen werden und die Code-Lesbarkeit und -wartbarkeit verbessert werden.

Wie benutze ich Javas Enums, um feste Wertesätze darzustellen?Wie benutze ich Javas Enums, um feste Wertesätze darzustellen?Mar 14, 2025 pm 04:57 PM

Java Enum repräsentieren feste Wertesätze und bieten durch benutzerdefinierte Methoden und Konstruktoren Typensicherheit, Lesbarkeit und zusätzliche Funktionalität. Sie verbessern die Codeorganisation und können in Switch -Anweisungen zur effizienten Wertschreibung verwendet werden.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool