Java : ouverture+rafraichissement d'une base

Fermé
loicDu28 Messages postés 332 Date d'inscription dimanche 11 janvier 2009 Statut Membre Dernière intervention 2 février 2016 - 3 mars 2009 à 14:17
Bonjour,

Je réalise un programme en mode console qui me permet de remplir une base de données (sous le SGBD FrontBase) puis d'ouvrir cette dernière.

J'ai 2 problème donc deux questions :
1) Lorsque j'exécute mon programme, la première fois, il m'ouvre juste le SGBD, comment puis-je faire pour qu'il m'ouvre directement la base souhaité??
2) Est-il possible via du code java de rafraichir la base de données??

Voici le code utilisé :
import java.io.IOException;
import java.sql.*;

public class DictionnaireParametrable
{
	public static void main(String[] args) 
	{
		 System.out.print("\n                Création des tables et insertions des données                ");
	     String url = "jdbc:FrontBase://localhost/DictionnaireParametrable_V3/user=_SYSTEM";
	       
	     try 
	     {
	    	 Class.forName ("com.frontbase.jdbc.FBJDriver") .newInstance();
	    	 Connection con = DriverManager.getConnection(url);
	    	 
	 		Runtime runtime = Runtime.getRuntime();
			Process process = null;
	    	 try 
	    	 {
	    		 Statement monStatement = con.createStatement();
	    		 
	    		 System.out.println("\n\n************************************************************************************\n");
	    		 
	    		 String table = "CREATE TABLE Article(id integer, libelle varchar(50), prix integer)";
	    		 monStatement.executeUpdate (table) ;
	    		 String constraint = "ALTER TABLE Article ADD CONSTRAINT PK_Article PRIMARY KEY (id)";
	    		 monStatement.executeUpdate(constraint);
	    		 System.out.println("Création de la table 'Article' avec succée");
	    		 
	    		 String  donnees = "INSERT INTO Article VALUES (1, 'Levis 501', 45)";
	    		 monStatement.executeQuery(donnees);
	    		 donnees = "INSERT INTO Article VALUES (2, 'Sportwear', 12)";
	    		 monStatement.executeQuery(donnees);
	    		 donnees = "INSERT INTO Article VALUES (3, 'Honda hornet', 1500)";
	    		 monStatement.executeQuery(donnees);
	    		 donnees = "INSERT INTO Article VALUES (4, 'Suzuki bandit', 2000)";
	    		 monStatement.executeQuery(donnees);
	    		 donnees = "INSERT INTO Article VALUES (5, 'Yamaha FZ6', 1000)";
	    		 monStatement.executeQuery(donnees);
	    		 donnees = "INSERT INTO Article VALUES (6, 'Aprilia leonardo', 1250)";
	    		 monStatement.executeQuery(donnees);
	    		 donnees = "INSERT INTO Article VALUES (7, 'C# précis et concis', 9)";
	    		 monStatement.executeQuery(donnees);
	    		 donnees = "INSERT INTO Article VALUES (8, 'Tout sur le développement logiciel', 12)";
	    		 monStatement.executeQuery(donnees);
	    		 System.out.println("Les données de la 'table Article' sont insérées");
	    		 
	    		 // Ouverture du logiciel (du SGBD)
	    		 process = runtime.exec(new String[]{"open", "/Applications/FrontBaseManager.app"});
	    		 
	    		 // ICI => je veux ouvrir la base de données nommée "DictionnaireParametrable_V3"

		    	 System.out.println("Pour continuer : cliquer sur la touche entrer de votre clavier");
		    	 int n = System.in.read();
		    	 
		 
	    		 System.out.println("\n************************************************************************************\n");
	    		 
	    		 table = "CREATE TABLE TypeArticle(id integer, libelle varchar(30))";
	    		 monStatement.executeUpdate(table);
	    		 constraint = "Alter TABLE TypeArticle ADD CONSTRAINT PK_TypeArticle PRIMARY KEY(id)";
	    		 monStatement.executeUpdate(constraint);
	    		 System.out.println("Création de la table 'TypeArticle' avec succée");
	    		 
	    		 donnees = "INSERT INTO TypeArticle VALUES (1, 'Pantalon(s)')";
	    		 monStatement.executeQuery(donnees);
	    		 donnees = "INSERT INTO TypeArticle VALUES(2, 'Moto(s)')";
	    		 monStatement.executeQuery(donnees);
	    		 donnees = "INSERT INTO TypeArticle VALUES(3, 'Livre(s)')";
	    		 monStatement.executeQuery(donnees);
	    		 System.out.println("Les données de la table 'TypeArticle' sont insérées");
	    		 
	    		 String modif_article = "ALTER TABLE Article ADD id_TypeArticle integer";
	    		 monStatement.executeUpdate(modif_article);	 
	    		 String liaison = "ALTER TABLE Article ADD CONSTRAINT FK_Article_TypeArticle FOREIGN KEY (id_TypeArticle) REFERENCES TypeArticle(id)";
	    		 monStatement.executeUpdate(liaison);
	    		 String modif_donnees = "UPDATE Article SET id_TypeArticle = 1 WHERE id = 1";
	    		 monStatement.executeUpdate(modif_donnees);
	    		 modif_donnees = "UPDATE Article SET id_TypeArticle = 1 WHERE id = 2";
	    		 monStatement.executeUpdate(modif_donnees);
	    		 modif_donnees = "UPDATE Article SET id_TypeArticle = 2 WHERE id = 3";
	    		 monStatement.executeUpdate(modif_donnees);
	    		 modif_donnees = "UPDATE Article SET id_TypeArticle = 2 WHERE id = 4";
	    		 monStatement.executeUpdate(modif_donnees);
	    		 modif_donnees = "UPDATE Article SET id_TypeArticle = 2 WHERE id = 5";
	    		 monStatement.executeUpdate(modif_donnees);
	    		 modif_donnees = "UPDATE Article SET id_TypeArticle = 2 WHERE id = 6";
	    		 monStatement.executeUpdate(modif_donnees);
	    		 modif_donnees = "UPDATE Article SET id_TypeArticle = 3 WHERE id = 7";
	    		 monStatement.executeUpdate(modif_donnees);
	    		 modif_donnees = "UPDATE Article SET id_TypeArticle = 3 WHERE id = 8";
	    		 monStatement.executeUpdate(modif_donnees);
	    		 System.out.println("Modifications de la table 'Article' sont apportées");
	    		 
	    		 // Ouverture de l'application (vu que le SGBD est resté ouvert, il m'ouvre au niveau d'ou j'étais resté juste avant de retourner au code)
	    		 process = runtime.exec(new String[]{"open", "/Applications/FrontBaseManager.app"});
	    		 
	    		 //ICI => Rafraichissement de la base de données

		    	 System.out.println("Pour continuer : cliquer sur la touche entrer de votre clavier");
		    	 n = System.in.read();
.............

Merci d'avance
A voir également: