48 votes

Statut de la connexion Java JDBC

Je me connecte (avec succès) à une base de données en utilisant la procédure suivante :

java.sql.Connection connect = DriverManager.getConnection(
  "jdbc:mysql://localhost/some_database?user=some_user&password=some_password");

Que dois-je vérifier pour voir si la connexion est toujours ouverte et opérationnelle après un certain temps ?
J'espérais quelque chose comme connect.isConnected(); que je peux utiliser.

1voto

access_granted Points 668

La méthode la moins coûteuse, quelle que soit l'implémentation du fournisseur, serait de sélectionner quelque chose à partir de la mémoire du processus ou de la mémoire du serveur, comme la version de la base de données ou le nom de la base de données actuelle. IsClosed est très mal implémenté.

Ejemplo:

java.sql.Connection conn = <connect procedure>;
conn.close();
try {
  conn.getMetaData();
} catch (Exception e) {
  System.out.println("Connection is closed");
}

0voto

Voici une solution simple si vous utilisez JDBC pour obtenir la connexion par défaut

 private Connection getDefaultConnection() throws SQLException, ApiException {
    Connection connection = null;
    try {
         connection = dataSource.getConnection ();
    }catch (SQLServerException sqlException) {
        // DB_UNAVAILABLE EXCEPTION
    }
    return connection;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X