Posté(e) le 17 juin 200619 a Bonjour, alors voilà, j'ai creer une base de données mySQL avec un fichier texte contenant mes requetes. Mais j'aimerai le lancer depuis java. Je reussit a executer des requètes sur la BD à parir de java grâce a un driver jdbc, mais sur les requetes type source , j'ai un message d'erreur : "java.sql.SQLException: Erreur de syntaxe près de 'source . ." J'utilise dans java stmt.execute("source J:/Biblio/Creation_BD.txt"); où stmt est un Statement. Je vois pas d'ou est l'erreur. Peut être que c'est pas le driver qui ne prend pas en charge ce type de requete , ou le chemin ( il est bon mais je sais pas si il faut préciser d'autres choses ) Bref je suis paumé et je trouve rien sur le net. Edit: N'hesitez pas si vous savez contourné le problème, par exemple , en découpant le fichier en différents strings. Mes faibles connaisances en java me permette pas de le faire. :s Modifié le 20 juin 200619 a par Rakkeur
Posté(e) le 18 juin 200619 a La méthode execute(String) est faite pour lancer une requête SQL. Or "source unFichier" n'est pas une requête SQL, mais une instruction que comprend l'interpréteur MySQL. A ma connaissance, il n'y a pas de méthode prédéfinies pour exécuter un fichier SQL. Il suffit de l'ouvrir, de lire chaque requête qu'il contient, et de l'exécuter.
Posté(e) le 20 juin 200619 a Auteur Merci, je m'en doutais un peu que ca existait pas. Pour ceuxqui cherche comment passer outre, j'ai créer une méthode qui charge les instructions une après l'autre ( comme l'a dit fabien29200 ) : public static void chargement() throws Exception { { BufferedReader lecteurAvecBuffer = null; String ligne; try { lecteurAvecBuffer = new BufferedReader (new FileReader("Creation_BD.txt")); } catch(FileNotFoundException exc) { System.out.println("Erreur d'ouverture"); } while ((ligne = lecteurAvecBuffer.readLine()) != null) stmt.execute(ligne); lecteurAvecBuffer.close(); } } Voilà.
Posté(e) le 24 juin 200619 a un peu dangereux, j'aurai plutot fait un truc genre: public static void chargement() throws Exception { BufferedReader reader = null; String currentLine = null; String currentCmd = ""; try { reader = new BufferedReader (new FileReader("Creation_BD.txt")); } catch(FileNotFoundException exc) { System.out.println("Erreur d'ouverture"); } while ((currentLine = reader.readLine()) != null) { currentLine = currentLine.trim(); if(currentLine.startsWith("-- ")) //skip comments (yes strict is "-- " not "--") continue; StringTokenizer st = new StringTokenizer(currentLine,";",true); while(st.hasMoreTokens()) { currentCmd += st.nextToken(); if(currentCmd.endsWith(";")) { //stmt.execute(currentCmd); currentCmd = ""; } } } reader.close(); } Modifié le 24 juin 200619 a par Wooden
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.