import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class DataSource implements javax.sql.DataSource {
private List<Connection> connectionPool = new ArrayList<>();
private String url;
private String username;
private String password;
public DataSource(String url, String username, String password) {
this.url = url;
this.username = username;
this.password = password;
}
public Connection getConnection() throws SQLException {
if (connectionPool.isEmpty()) {
return createConnection();
} else {
return connectionPool.remove(connectionPool.size() - 1);
}
}
private Connection createConnection() throws SQLException {
return DriverManager.getConnection(url, username, password);
}
public void releaseConnection(Connection connection) throws SQLException {
connectionPool.add(connection);
}
}
import java.sql.Connection;
import java.sql.SQLException;
public class ConnectionPool {
private final DataSource dataSource;
public ConnectionPool(String url, String username, String password) {
dataSource = new DataSource(url, username, password);
}
public Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
public void releaseConnection(Connection connection) throws SQLException {
dataSource.releaseConnection(connection);
}
}
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Main {
public static void main(String[] args) {
String url = "jdbc:duckdb:";
String username = "your_username";
String password = "your_password";
ConnectionPool connectionPool = new ConnectionPool(url, username, password);
try (Connection connection = connectionPool.getConnection();
Statement statement = connection.createStatement()) {
ResultSet resultSet = statement.executeQuery("SELECT * FROM table_name");
while (resultSet.next()) {
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}