[Java/MySQL] interrogation bdd

interrogation bdd [Java/MySQL] - Java - Programmation

Marsh Posté le 06-05-2008 à 21:13:36    

    Salut à tous,
 
     J'ai depuis peu un petit projet à réaliser dans lequel je dois interroger une bdd mySQL à travers un programme java. J'ai donc lu des tutoriels et quelques topics par-ci par-la, afin de me faire une idée.
 
     J'ai créé une bdd à l'aide d'easyPHP et j'ai importé dans le classpath "mysql-connector-java-5.0.8-bin.jar".
 
     J'ai réalisé un petit bout de code afin de faire la connection à la base à l'aide de JDBC, seulement je suis vite resté coincé sur une erreur lors de l'appel à "executeQuerry", erreur récurrente que je n'arrive pas à cibler.
 
     Mon code:
       
     

Code :
  1. Class.forName("com.mysql.jdbc.Driver" );
  2.       String url = "jdbc:mysql://localhost";
  3.       Connection con = null;
  4.       con = DriverManager.getConnection(url, "root","" );
  5.    
  6.       Statement stmt = null;
  7.       stmt = con.createStatement();
  8.                 String requete = "SELECT login FROM ade_abonnements WHERE NUM > 10";
  9.    
  10.       ResultSet rs = stmt.executeQuery(requete);
  11.       ...


 
et voila l'erreur générée à l'execution:
 
       

Code :
  1. Erreur pendant la connexion
  2.         java.sql.SQLException: Aucune base n'a été sélectionnée
  3. at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
  4. at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
  5. at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
  6. at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
  7. at com.mysql.jdbc.Connection.execSQL(Connection.java:3277)
  8. at com.mysql.jdbc.Connection.execSQL(Connection.java:3206)
  9. at com.mysql.jdbc.Statement.executeQuery(Statement.java:1232)
  10. at AdeAppel.main(AdeAppel.java:34)


 
     J'ai déjà essayé plusieurs version de "execute" mais toujours le même résultat au variation près des lignes dans la classe "Statement".
 
Merci d'avance...
 
Cam.

Reply

Marsh Posté le 06-05-2008 à 21:13:36   

Reply

Marsh Posté le 06-05-2008 à 21:38:47    

c'est ton url qui est ratée : "Aucune base n'a été sélectionnée"

Message cité 1 fois
Message édité par brisssou le 06-05-2008 à 21:38:54

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 06-05-2008 à 23:30:33    

Merci pour ta réponse
 

brisssou a écrit :

c'est ton url qui est ratée


 
Mais selon toi quel serai le type d'url que je devrai envoyer sachant que j'ai créé ma base tout simplement avec easyPHP sans modifié d'option spécifique et que je fait donc tout en local pour le moment.

Reply

Marsh Posté le 07-05-2008 à 08:33:40    

Le format de l'URL est expliqué ici:
http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-configuration-properties.html
 
Pour ton problème il faut que tu rajoutes le nom de la base dans l'URL.


---------------
Light is right
Reply

Marsh Posté le 19-11-2008 à 17:57:26    

ccapelle a écrit :

    Salut à tous,
 
     J'ai depuis peu un petit projet à réaliser dans lequel je dois interroger une bdd mySQL à travers un programme java. J'ai donc lu des tutoriels et quelques topics par-ci par-la, afin de me faire une idée.
 
     J'ai créé une bdd à l'aide d'easyPHP et j'ai importé dans le classpath "mysql-connector-java-5.0.8-bin.jar".
 
     J'ai réalisé un petit bout de code afin de faire la connection à la base à l'aide de JDBC, seulement je suis vite resté coincé sur une erreur lors de l'appel à "executeQuerry", erreur récurrente que je n'arrive pas à cibler.
 
     Mon code:
       
     

Code :
  1. Class.forName("com.mysql.jdbc.Driver" );
  2.       String url = "jdbc:mysql://localhost";
  3.       Connection con = null;
  4.       con = DriverManager.getConnection(url, "root","" );
  5.    
  6.       Statement stmt = null;
  7.       stmt = con.createStatement();
  8.                 String requete = "SELECT login FROM ade_abonnements WHERE NUM > 10";
  9.    
  10.       ResultSet rs = stmt.executeQuery(requete);
  11.       ...


 
et voila l'erreur générée à l'execution:
 
       

Code :
  1. Erreur pendant la connexion
  2.         java.sql.SQLException: Aucune base n'a été sélectionnée
  3. at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
  4. at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
  5. at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
  6. at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
  7. at com.mysql.jdbc.Connection.execSQL(Connection.java:3277)
  8. at com.mysql.jdbc.Connection.execSQL(Connection.java:3206)
  9. at com.mysql.jdbc.Statement.executeQuery(Statement.java:1232)
  10. at AdeAppel.main(AdeAppel.java:34)


 
     J'ai déjà essayé plusieurs version de "execute" mais toujours le même résultat au variation près des lignes dans la classe "Statement".
 
Merci d'avance...
 
Cam.


 
bonjour,
 
j'utilise MySQL et pour ta question essaies la syntaxe suivante :
 
String url = "jdbc:mysql://localhost:PORT/NOM_DE_MA_BASE";
Connection con = null;
try {
 Driver driver = new com.mysql.jdbc.Driver();
 DriverManager.registerDriver(driver);
 con = DriverManager.getConnection(url, "root","" );
} catch (SQLException ex) {
 System.out.println("Problème rencontré pendant la tentative de connexion" );
 (...)
}
(...)
 
La solution est réellement toute proche.
a) corriges la source et ajoutes le nom de ta base de données
b) suis le conseil de nerisson et prends le temps de regarder le manuel de référence en ligne
c) au-delà du code pur et dur et de la mise au point de ton programme, regardes aussi les droits d'accès à ta base c'est pas mal également ce qu'on peut faire avec MySQL.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed