簡體   English   中英

如何將同一數據庫連接用於多種方法(JAVA)

[英]How to use the same database connection for multiple methods(JAVA)

嗨,所以我開始學習JAVA中的數據庫連接,並且正在開發一個需要數據庫的小型應用程序。 我想知道使用Connection對象的正確方法是什么,以便可以將其與多種方法一起使用。

一種添加新記錄的方法,另一種搜索特定鍵的方法,依此類推。 我將必須訪問多個表,每個表都有自己的類和方法集。

如果有關於JAVA軟件開發的好書,那也可能會很有用。

我認為在簡單情況下,只需打開和關閉每個查詢的連接即可。 對於更復雜的情況(例如服務器),可以使用連接池,該池保留打開的連接的列表

如果應用程序較小,則每次訪問數據庫時都可以創建一個連接對象,但是如果對數據庫的請求數量很高,則可以使用連接池,可以使用BasicDataSource,這是一個apache項目,使用單例模式來包裝實例的基本數據源並每次從包裝類DataWrapper中檢索連接對象

import java.sql.Connection;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp2.BasicDataSourceFactory;

public class DataWrapper {

    private static DataSource datasource;

    private static void initialize() throws Exception {

        Properties props = new Properties();
        props.put("url", "jdbc:mysql://localhost:3306/testbd");
        props.put("password", "root");
        props.put("username", "root");
        props.put("driverClassName", "com.mysql.jdbc.Driver");
        props.put("initialSize", "10");
        props.put("maxTotal", "15");
        props.put("maxIdle", "10");
        props.put("minIdle", "5");
        datasource = BasicDataSourceFactory.createDataSource(props);

    }

    public static synchronized Connection getConnection() throws Exception {
        if (datasource == null) {
            initialize();
        }
        return datasource.getConnection();

    }

}

呼叫者

Connection con=DataWrapper.getConnection();
    PreparedStatement statement=con.prepareStatement("select * from users");

    ResultSet result= statement.executeQuery();
    result.next();
    System.out.println(result.getString(1));
    //dont forget to close the connection object
    con.close();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM