Bonjour chère communauté :-)
Pour un projet, je récupère bêtement un entier issu d'un count dans une table d'une base MySQL
Sitôt récupéré, il est comparé dans un test conditionnel...rien d'inhabituel, pour vous comme pour moi
Seulement, après test, l'application ne fait rien
Quand je dis qu'elle ne fait rien, c'est en constatant ceci:
- L'interface ne gèle pas et est toujours aussi réactive (utilisation de SwingWorker)
- Le bloc d'instruction découlant du if n'est pas executé, ni celui du else
- Aucun message d'erreur n'est généré
Ce qui est en gras me permet de faire fonctionner l'application comme je le souhaite...
Code Java : 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 Class.forName("com.mysql.jdbc.Driver"); connexion = DriverManager.getConnection("jdbc:mysql://" + Fonctions.getConfiguration("bdd_url") + "/" + Fonctions.getConfiguration("bdd_base"), Fonctions.getConfiguration("bdd_user"), Fonctions.getConfiguration("bdd_pwd")); publish("CONNEXION_SUCCES"); Statement instruction = connexion.createStatement(); // Thread.sleep(1000); publish("INTERROGATION"); // Interrogation de la base sur le nombre de notifications non lues String requete = "SELECT COUNT(*) " + "FROM ETRE_AVERTI EA, COLLABORATEUR C " + "WHERE EA.id_prsn = C.id_prsn " + "AND C.login_col = '" + this.username + "' " + // Variable d'environnement "AND EA.averti = 0"; instruction.executeQuery(requete); // Essaye de déplacer le curseur jusqu'au champ de la table nb_notifications = instruction.getResultSet().next()?instruction.getResultSet().getInt(1):0; if (nb_notifications > 0) { ...
J'en déduis donc qu'il y a un problème de synchronisation des threads ? Une méthode JDBC serait-elle asynchrone et me l'aurait caché ?
Probablement pas, manque d'expérience JDBC surement...
Merci de votre lecture et de votre éventuelle réponse
Partager