Tester une connexion Java/MySQL

quentigus Messages postés 6 Date d'inscription vendredi 21 novembre 2008 Statut Membre Dernière intervention 3 mai 2010 - 12 janv. 2010 à 19:34
 Alix.D - 13 mars 2015 à 18:26
Bonjour,

Je débute avec le JDBC, je sais établir une connexion faire des opérations sur les bases et fermer la connexion, mais je le problème, c'est quand la base de donnée n'est pas accessible, je voudrais gérer cette exception.

C'est pourquoi je pose cette question, serait-il possible de m'expliquer comment faire pour savoir si la connexion à la base de donnée est possible ou pas ? (en attendant, j'ai trouvé une parade mais c'est long à faire la recherche )

Merci

4 réponses

voilemiss Messages postés 46 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 16 janvier 2010 4
16 janv. 2010 à 03:31
try {
Class.forName("com.mysql.jdbc.Driver");
connection = (Connection) DriverManager.getConnection("jdbc:mysql://127.0.0.1/test");
} catch (ClassNotFoundException e) {
System.out.println(e);
} catch (SQLException e){
System.out.println(e);
}
1
trigertrouper31 Messages postés 5 Date d'inscription mercredi 18 juillet 2007 Statut Membre Dernière intervention 9 mars 2012
4 mai 2010 à 11:19
Bonjour,

J'ai le même probleme sauf qur voilemiss avec ton code tu recré une instance de connexion du coup si tu regarde tes process tu doit avoir plein postgre.exe qui tourne si tu fais plein de test avec ton appli!! Pas bon du tout!
0
trigertrouper31 Messages postés 5 Date d'inscription mercredi 18 juillet 2007 Statut Membre Dernière intervention 9 mars 2012
4 mai 2010 à 12:02
Sa y est j'ai réussis

Là où tu teste la connexion

if(Connection_Db.isValid(Connection_Db.getInstance())==false) 
{
  connect=false;
  throw new SQLException();
}
else
{
  connect=true;							
  commHandler.logger.info("Connection Data Base Sucess");
}


La fonction is Valid permet de pinguer ton serveur DB

public static boolean isValid(Connection connection){
   if(connection==null){
      return false;
   }
   ResultSet ping = null;
   try{
      if(connection.isClosed()){return false;}
      ping = connection.createStatement().executeQuery("SELECT 1");
      return ping.next();
   }catch(SQLException sqle){
      return false;
   }
   finally{
      if(ping!=null){try{ping.close();}catch(Exception e){}}
   }  
}


Et cette fonction peremet de retourner une instance de connection! J'ai utiliser un pattern singleton

public class Connection_Db{

/**
 * URL de connection
 */
private static String url = "jdbc:postgresql://localhost:543/test";
/**
 * Nom du user
 */
private static String user = "postgres";
/**
 * Mot de passe du user
 */
private static String passwd = "toto";
/**
 * Objet Connection
 */
private static  Connection connect;


/**
 * Méthode qui va nous retourner notre instance
 * et la créer si elle n'existe pas...
 * @return
 * @throws SQLException 
 */
public static Connection getInstance() throws SQLException{
if(connect == null){
connect = DriverManager.getConnection(url, user, passwd);	
}	
else
{
if(!isValid(connect))
{
connect.close();
connect = DriverManager.getConnection(url, user, passwd);
}
}
return connect;	

}


public static boolean isValid(Connection connection){
   if(connection==null){
      return false;
   }
   ResultSet ping = null;
   try{
      if(connection.isClosed()){return false;}
      ping = connection.createStatement().executeQuery("SELECT 1");
      return ping.next();
   }catch(SQLException sqle){
      return false;
   }
   finally{
      if(ping!=null){try{ping.close();}catch(Exception e){}}
   }  
}	
}


}
0
Pour la vérification de connection : Connection_Db correspond à quoi ?
0
Rejoignez-nous