我在我的 Java 應用程式中使用 BasicDataSource 實作了一個連接類別。這被認為是真正的連接池嗎?
是的,您正在使用帶有 BasicDataSource 的連接池,BasicDataSource 是 Apache Commons DBCP 的一個元件。但是,您在目前的實作中無意中建立了多個連線池,因為每次呼叫 getConnection() 都會建立一個新池。
要建立正確的連接池,通常您應該只建立連接池一次在應用程式啟動期間。然後,應使用該池在應用程式執行過程中取得和釋放連線。
以下是有效使用連線池的程式碼修訂版本:
public final class Database { private static final BasicDataSource dataSource = new BasicDataSource(); static { dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/data"); dataSource.setUsername("USERNAME"); dataSource.setPassword("PASSWORD"); } private Database() { // } public static Connection getConnection() throws SQLException { return dataSource.getConnection(); } }
try ( Connection connection = Database.getConnection(); PreparedStatement statement = connection.prepareStatement(SQL_EXIST); ) { // ... }
以上是我的 BasicDataSource 實作真的使用 JDBC 連線池嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!