IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Timer non connectivitée


Sujet :

JDBC Java

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 10
    Points : 0
    Points
    0
    Par défaut Timer non connectivitée
    Bonjour à tous !

    Je vous contacte car j'ai un petit soucis :

    J'ai réalisé un programme permettant de se connecter à ma base de données, et de dialoguer avec celle ci, par le biais de diverses requêtes SQL.

    Mon problème est le suivant : j'aimerais faire en sorte qu'après 10 secondes (par exemple) de tentative de connexion, si elle ne se fait pas, que ça me prévienne par un "connexion échouée".

    Ce qu'il me manque, c'est uniquement le timer, j'ai essayé des trucs sans aboutir, et je ne vois absolument pas ou je dois le mettre ni comment le faire.
    J'ai le reste, la tentative de connexion, et le message d'erreur sont fonctionnels, il ne me reste plus qu'a faire en sorte que ce message d'erreur s'affiche.

    Je vous remercie pour les éventuelles pistes que vous pourriez me fournir !

    Bonne journée

    Ps : c'est mieux si je vous fournis mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.Date;
    import java.util.Timer;
    import java.util.TimerTask;
     
    import com.mysql.jdbc.ResultSetMetaData;
    import com.mysql.jdbc.Statement;
     
     
     
    public class connexion {
     
     
    	//private static Connection connect;
    	static Statement state;
    	static String[] capteur =new String[11];
    	static int i =0;
    	static connexion connec;
    	static int NBCapteurs;
    	public static void main(String[] args) {
    		try {
    			connec= new connexion();
    			/*Timer timer = new Timer();
    	        TimerTask task = null;
    			Date time = null;
    			timer.schedule(task, time);
    			{
     
    			}, 1000);*/
     
     
    			//insert(215, "192.168.10.1", 3128, 1, 0, 2, 1, "P", 1, 0, "releve");
    			//select(201);
    			//nbCapteur();
    			//changeEcartRouge(20,1);
    			//changeEcartOrange(25,1);
    			//changeConsigne(78,2);
    			//changeReleve(2, 3);
    			//connec.recup(3);
    			//connec.delete(3);
    			//insertTempo(21, "avril", 2012, "21h24", 10, "Alerte", 2);
    			recupRequete(1);
    		}
    		catch (Exception e) 
    		{
    			// En cas de non connectivité, on prévient par un message que la connexion à échouée
     
    			e.printStackTrace();
    		}
     
    }
     
    public connexion()
    {
    	try {
    		Class.forName("com.mysql.jdbc.Driver");
    	} catch (ClassNotFoundException e) {
    		// TODO Auto-generated catch block
     
    		e.printStackTrace();
    	}
    	System.out.println("Driver valide");
    	String url = "jdbc:mysql://192.168.1.89/Barsun";
    	String user = "root";
    	String password = "biscuit";
    	Connection connect = null;
    	try 
    	{	Timer timer = new Timer();
    	 	timer.schedule (new TimerTask() {
             public void run()
             {
                 //System.out.printf ("%tR\n", new Date());
             }
         }, 10000);
    		connect = DriverManager.getConnection(url, user, password);
    	} catch (SQLException e) {
    		// TODO Auto-generated catch block
    		javax.swing.JOptionPane.showMessageDialog(null,"Erreur de connexion à  la base de données !");
    		e.printStackTrace();
    	}
    	try {
    		state = (Statement) connect.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
    		        ResultSet.CONCUR_UPDATABLE);
    		System.out.println("Vous êtes connecté à  la base de donnée Barsun");
    	} catch (SQLException e) {
    		// TODO Auto-generated catch block
     
    		e.printStackTrace();
    	}
    }
    Après cela on enchaîne avec chacune de mes fonctions, inutile que je les fournissent donc ^^

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2011
    Messages : 214
    Points : 338
    Points
    338
    Par défaut
    Bonjour,

    Avant la connexion tu peux appeler:
    DriverManager.setLoginTimeout(10)
    Si la durée est dépassée, la méthode connect devrait lever une SqlException

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 10
    Points : 0
    Points
    0
    Par défaut
    Salut ^^

    Merci de ta réponse, j'essayerais ça demain en cours quand j'aurais accès à ma BDD !

    J'te tiens au courant !

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2013
    Messages : 10
    Points : 0
    Points
    0
    Par défaut
    Mmh après avoir essayé, la tentative de connexion continue après les 10 secondes, je ne sais pas si j'ai placé le LoginTimeOut correctement...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    public connexion()
    {
    	try {
    		Class.forName("com.mysql.jdbc.Driver");
    		DriverManager.setLoginTimeout(10);
    	} catch (ClassNotFoundException e) {
    		// TODO Auto-generated catch block
     
    		e.printStackTrace();
    	}
    	System.out.println("Driver valide");
    	String url = "jdbc:mysql://192.168.2.89/Barsun";
    	String user = "root";
    	String password = "biscuit";
    	Connection connect = null;
    	try 
    	{	/*Timer timer = new Timer();
    	 	timer.schedule (new TimerTask() {
             public void run()
             {
                 System.out.printf ("%tR\n", new Date());
             }
         }, 10000);*/
    		connect = DriverManager.getConnection(url, user, password);
    	} catch (SQLException e) {
    		// TODO Auto-generated catch block
    		javax.swing.JOptionPane.showMessageDialog(null,"Erreur de connexion à  la base de données !");
    		e.printStackTrace();
    	}
    	try {
    		state = (Statement) connect.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
    		        ResultSet.CONCUR_UPDATABLE);
    		System.out.println("Vous êtes connecté à  la base de donnée Barsun");
    	} catch (SQLException e) {
    		// TODO Auto-generated catch block
     
    		e.printStackTrace();
    	}
    }
    Cette ligne que tu m'as fournis est-elle suffisante ?

    En poursuivant mes recherches, voici ce que j'ai pu trouver :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    import java.sql.*;
    public class JdbcConnectivityCodeInJava {
      public static void main(String args[]) {
      Connection con = null;
      String url = "jdbc:mysql://localhost:3306/";
      String db = "komal";
      String driver = "com.mysql.jdbc.Driver";
      String user = "root";
      String pass = "root";
      try {
      Class.forName(driver);
      DriverManager.setLoginTimeout(10);
      System.out.println("Connection Login Timeout : " +
      DriverManager.getLoginTimeout()+" Sec");
      con = DriverManager.getConnection(url + db, user, pass);
      System.out.println("Connection is created....");
      con.close();
      } catch (Exception e) {
      System.out.println(e);
      }
      }
    }
    Donc ça correspond un peu à ce que tu m'as dis, avec d'autres trucs..
    J'ai essayé de me dépatouiller avec ça, rien de concluant...

    Si tu as d'autres idées.. ^^

Discussions similaires

  1. Timer non bloquant
    Par smarties dans le forum Android
    Réponses: 2
    Dernier message: 03/01/2012, 17h38
  2. Simuler deux timers non synchronisés
    Par progfou dans le forum Général Python
    Réponses: 8
    Dernier message: 20/01/2011, 16h39
  3. Timer non disponible
    Par dd16 dans le forum Composants VCL
    Réponses: 6
    Dernier message: 15/07/2010, 16h46
  4. timer non declenché avec onpaint
    Par attwad dans le forum wxPython
    Réponses: 2
    Dernier message: 06/02/2009, 08h00
  5. Creer un composant non visuel(Timer) dans une DLL
    Par hugobob dans le forum Composants VCL
    Réponses: 1
    Dernier message: 06/06/2006, 16h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo