J'ai implémenté une classe de connexion à l'aide de BasicDataSource dans mon application Java. Est-ce considéré comme un véritable pool de connexions ?
Oui, vous utilisez un pool de connexions avec BasicDataSource, qui est un composant d'Apache Commons DBCP. Cependant, vous créez par inadvertance plusieurs pools de connexions avec votre implémentation actuelle, car un nouveau pool est créé à chaque appel à getConnection().
Pour établir un pool de connexions approprié, vous ne devez créer le pool de connexions qu'une seule fois, généralement lors du démarrage de l'application. Ce pool doit ensuite être utilisé pour acquérir et libérer des connexions tout au long de l'exécution de l'application.
Voici une version révisée de votre code qui utilise efficacement le pool de connexions :
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(); } }
Dans le code de votre application, vous devez utiliser un bloc try-with-resources pour garantir que les ressources telles que les connexions, les instructions et les jeux de résultats sont correctement fermés, même en cas d'exceptions :
try ( Connection connection = Database.getConnection(); PreparedStatement statement = connection.prepareStatement(SQL_EXIST); ) { // ... }
En implémentant ces révisions, vous établirez un véritable pool de connexions dans votre application Java , optimisant ses performances en évitant les frais généraux liés à la création de plusieurs connexions.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!