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

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

angryTom
angryTomnach vorne
2019-11-26 15:31:413693Durchsuche

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:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen