Importation d'un vidage de base de données (mysql) par programmation via Java
Comment puis-je importer une base de données mysql fichier de vidage (contient de l'insertion et les instructions create table) par programme à l'aide d'un programme java. J'ai besoin de cela comme de la phase d'installation d'une unité de test.
Malheureusement cela ne fonctionne pas:
Connection conn = dbConnectionSource.getConnection();
Statement stmt = conn.createStatement();
stmt.execute(FileUtils.readFileToString(new File("./some-sql-file")));
conn.close();
Grâce,
-Un
PS - Dans les Rails, j'ai utilisé des accessoires pour le remplissage d'une base de données de test. J'ai fait des rails de rails de créer les tables sous-jacentes à travers la configuration de l'environnement de test, rien de semblable en Java.
source d'informationauteur Ali Salehi
Vous devez vous connecter pour publier un commentaire.
Vous pourriez commencer un nouveau processus de java et de l'exécution de cette commande si vous avez accès à la base de l'exécutable partout où vous exécutez l'importation. Quelque chose comme ceci:
Personnellement, je disrecommend chargement régulier d'un dump SQL de cette façon, parce que vous auriez besoin non trivial de code pour parser ou au moins marquer SQL.
Je recommande l'utilisation de données au format CSV, dumps, vous pouvez charger ces avec un LOAD DATA INFILE de la syntaxe. Voir: http://dev.mysql.com/doc/refman/5.1/en/load-data.html
Bien sûr, vous auriez encore besoin de s'assurer de la cible tables existent, mais si vous savez que vous n'avez qu'à analyser la création de la table DDL stattemnts, qui va considérablement simplifier votre code java.
Notez que vous pouvez utiliser mysqldump pour extraire des données au format CSV à partir de votre base de données, voir: http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_tab
De sauvegarde:
Restauration:
Solution efficace peut être trouvé ici:
https://stackoverflow.com/a/1044837
C'est ce qui explique comment exécuter n'importe quel script sql sur jdbc.