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(); } } }


上一篇:
下一篇:
切换中文