loicDu28
Messages postés332Date d'inscriptiondimanche 11 janvier 2009StatutMembreDerniè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();
.............