Problème de connexion JDBC - SQL

cs_NarcissX Messages postés 2 Date d'inscription vendredi 2 juillet 2010 Statut Membre Dernière intervention 14 juillet 2010 - 13 juil. 2010 à 20:07
jolapoire Messages postés 1 Date d'inscription mardi 1 décembre 2009 Statut Membre Dernière intervention 27 août 2010 - 27 août 2010 à 15:31
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

cs_NarcissX Messages postés 2 Date d'inscription vendredi 2 juillet 2010 Statut Membre Dernière intervention 14 juillet 2010
14 juil. 2010 à 08:48
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
0
jolapoire Messages postés 1 Date d'inscription mardi 1 décembre 2009 Statut Membre Dernière intervention 27 août 2010
27 août 2010 à 15:31
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
0
Rejoignez-nous