Problème de connexion JDBC - SQL

Signaler
Messages postés
2
Date d'inscription
vendredi 2 juillet 2010
Statut
Membre
Dernière intervention
14 juillet 2010
-
Messages postés
1
Date d'inscription
mardi 1 décembre 2009
Statut
Membre
Dernière intervention
27 août 2010
-
Bonjour à tous !

J'espère ne pas m'être trompé de section, je pense que mon problème doit se trouver dans celle-ci, mais je ne suis pas un assez grand connaisseur pour en être certain.

Je vous donne rapidement le contexte : je suis en stage dans une entreprise, dans laquelle je suis en train de refaire le logiciel de messagerie instantanée interne ( MSN en local quoi.. ). Tout marche à merveille quand j'utilise le pseudo-serveur MAMP ( même chose que WAMP, mais pour Mac ) et la base de données fonctionne parfaitement.

Le problème est que, quand je veux relier mon programme à la base de données de l'entreprise via le serveur de l'entreprise, plus rien ne va ! Etant donnée qu'il n'y a aucune erreur affichée dans la console ou ailleurs, je n'ai pas la moindre idée de ce qui bloque.

Je vous mets un bout de code, puisque mon problème se résume à quelques lignes, celles de la connexion :

D'abord les données de connexion :
private static String adr = "jdbc:mysql://192.168.1.59:188/tchat";
private static String user = "root";
private static String mdp = "";


Ensuite le code :
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn = DriverManager.getConnection(Main.getAdr(),Main.getUser(),Main.getPass());
Statement state = conn.createStatement();
ResultSet result = state.executeQuery("SELECT MAX(id_Register) FROM registered");


Rien de sorcier je suppose, mais ça suffit à me rendre fou

Pour faire simple, quand j'appelle la fonction comprenant le code précédent, l'application bloque complètement, autant sous Eclipse qu'en Runnable JAR. Ca fait un peu le même effet que si j'entrais dans un while infini ( pour ceux qui ont déjà fait cette erreur ) !

Bref, si quelqu'un a une idée, je suis toute ouïe, parce que je dois bien l'admettre, je n'ai pas la moindre idée de ce qui pourrait bloquer.

Si vous avez des questions supplémentaires, n'hésitez pas.

Merci d'avance !

2 réponses

Messages postés
2
Date d'inscription
vendredi 2 juillet 2010
Statut
Membre
Dernière intervention
14 juillet 2010

Bon, ce matin j'ai essayé un truc un peu couillon, mais bon, je n'avais pas d'autres idées : j'ai laissé tourner le programme un moment alors qu'il était bloqué par la connexion SQL.

Au final j'ai ( enfin ) obtenu une exception !!
com.mysql.jdbc.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1114)
at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:675)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1078)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2312)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2122)
at com.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:774)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:371)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:289)
at java.sql.DriverManager.getConnection(DriverManager.java:525)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at Controller.ListenerRegister.requestConnect(ListenerRegister.java:110)
at Controller.ListenerRegister.mouseReleased(ListenerRegister.java:63)
at java.awt.Component.processMouseEvent(Component.java:5602)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3129)
at java.awt.Component.processEvent(Component.java:5367)
at java.awt.Container.processEvent(Container.java:2010)
at java.awt.Component.dispatchEventImpl(Component.java:4068)
at java.awt.Container.dispatchEventImpl(Container.java:2068)
at java.awt.Component.dispatchEvent(Component.java:3903)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4256)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3936)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3866)
at java.awt.Container.dispatchEventImpl(Container.java:2054)
at java.awt.Window.dispatchEventImpl(Window.java:1801)
at java.awt.Component.dispatchEvent(Component.java:3903)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2502)
at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:599)
... 29 more
Messages postés
1
Date d'inscription
mardi 1 décembre 2009
Statut
Membre
Dernière intervention
27 août 2010

Tu n'a pas besoin de rajouter .newInstance() parce que tu utilise une méthode statique pour obtenir ta connection.
Fais-plutôt :
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(Main.getAdr(),Main.getUser(),Main.getPass());
Statement state = conn.createStatement();
ResultSet result = state.executeQuery("SELECT MAX(id_Register) FROM registered");

Jolapoire