Pseudo-Archive Java :
Accueil -|- Visuel -|- Logistique -|- Applications réparties
La pseudo-archive Java est un service proposé par la SARL diaam informatique, et il est hébergé par la Sogid.
diaam informatique
Date sent:      	Mon, 19 Mar 2001 13:34:37 +0100
From:           	Sebastien Cesbron <scesbron@ifrance.com>
To:             	java@u-strasbg.fr
Subject:        	Création d'une BD
Send reply to:  	java@u-strasbg.fr

Salut,

J'ai créé un modèle physique de données avec AMC et j'ai généré un
script SQL de création de base.
Ce que j'aimerais faire c'est un petit programme Java auquel je passe les
informations nécessaires (nom du driver, nom de la base, user, password et
nom du fichier contenant le sql) pour qu'il me créé mes tables à partir
d'une base vierge. Mon problème, c'est de passer le sql contenu dans mon
fichier à la base. Existe t'il un moyen pour passer un ensemble de
requêtes sql d'un seul coup où dois je parser mon fichier pour envoyer mes
requêtes une par une.

Merci d'avance pour vos réponses.


Seb

__________________________________________________________________________
____ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos
emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
http://www.ifrance.com/_reloc/email.emailif


     

From:           	Laurent Forêt <l.foret@korom.net>
To:             	<java@u-strasbg.fr>
Subject:        	RE: Création d'une BD
Date sent:      	Mon, 19 Mar 2001 14:07:33 +0100
Send reply to:  	java@u-strasbg.fr




> -----Message d'origine-----
> De : cesbron@ifrance.com [mailto:cesbron@ifrance.com]De la part de
> Sebastien Cesbron
> Envoyé : lundi 19 mars 2001 13:35
> À : java@u-strasbg.fr
> Objet : Création d'une BD
>
>
> Salut,
>
> J'ai créé un modèle physique de données avec AMC et j'ai généré un
> script SQL de création de base.
> Ce que j'aimerais faire c'est un petit programme Java auquel je passe
> les informations nécessaires (nom du driver, nom de la base, user,
> password et nom du fichier contenant le sql) pour qu'il me créé mes
> tables à partir d'une base vierge. Mon problème, c'est de passer le sql
> contenu dans mon fichier à la base. Existe t'il un moyen pour passer un
> ensemble de requêtes sql d'un seul coup où dois je parser mon fichier
> pour envoyer mes requêtes une par une.
>

 A ma connaissance, non. Via JDBC.

Chaque requete SQL se termine par un ";", il est donc pas difficile de
créer une liste de requètes, a partir  d'un fichier contenant tes
requetes. Puis les executer une par une sur le meme statement.


Laurent Forêt
Service développement

l.foret@korom.net <mailto:l.foret@korom.net>

www.korom.net <http://www.korom.net>

     

Date sent:      	Mon, 19 Mar 2001 05:31:53 -0800 (PST)
From:           	Thierry Janaudy <janaudy@yahoo.com>
Send reply to:  	janaudy@jyperion.com
Subject:        	RE:_Création_d'une_BD
To:             	java@u-strasbg.fr

Tu peux executer des batchs:
http://developer.java.sun.com/developer/Books/JDBCTutorial/index.html

(section 3.4: Batch update)

Be aware : jdbc 2.0

-- t

--- Laurent_Forêt <l.foret@korom.net> wrote:
> 
> 
> 
> > -----Message d'origine-----
> > De : cesbron@ifrance.com
> [mailto:cesbron@ifrance.com]De la part de
> > Sebastien Cesbron
> > Envoyé : lundi 19 mars 2001 13:35
> > À : java@u-strasbg.fr
> > Objet : Création d'une BD
> >
> >
> > Salut,
> >
> > J'ai créé un modèle physique de données avec AMC
> et j'ai généré un
> > script SQL de création de base.
> > Ce que j'aimerais faire c'est un petit programme
> Java auquel je passe
> > les informations nécessaires (nom du driver, nom
> de la base, user,
> > password et nom du fichier contenant le sql) pour
> qu'il me créé mes
> > tables à partir d'une base vierge.
> > Mon problème, c'est de passer le sql contenu dans
> mon fichier à la base.
> > Existe t'il un moyen pour passer un ensemble de
> requêtes sql d'un seul
> > coup où dois je parser mon fichier pour envoyer
> mes requêtes une par
> > une.
> >
> 
>  A ma connaissance, non. Via JDBC.
> 
> Chaque requete SQL se termine par un ";", il est
> donc pas difficile de créer
> une liste de requètes, a partir  d'un fichier
> contenant tes requetes. Puis
> les executer une par une sur le meme statement.
> 
> 
> Laurent Forêt
> Service développement
> 
> l.foret@korom.net <mailto:l.foret@korom.net>
> 
> www.korom.net <http://www.korom.net>
> 


=====
________________________________________
Thierry Janaudy (Independent consultant)
+44 77 52 14 3001
[cv]            http://www.mycgiserver.com/~janaudy/
[company]       http://www.jyperion.com/
[search engine] http://pharos.inria.fr/Java/

__________________________________________________
Do You Yahoo!?
Get email at your own domain with Yahoo! Mail. 
http://personal.mail.yahoo.com/

     

From:           	Celine LEFEBVRE <lefebvre.celine@caramail.com>
To:             	liste java <java@u-strasbg.fr>
Subject:        	Re[1] Création d'une BD
Date sent:      	Mon, 19 Mar 2001 14:37:36 GMT+1
Send reply to:  	java@u-strasbg.fr

il est possible d'executer des requetes a partir d'un
fichier, la commande depend de la base de donnees utilisee
il y a 2 solutions:
- a partir de la bd, tu peux utiliser la commande "source"
et tu peux donc peut-etre l'utiliser ds un executeUpdate()
(je ne sais pas, c'est une hypothese)
- a partir du shell, comme si tu te logues a la bd (avec
login et mot de passe) puis tu ajoutes " < sql.script "
donc a partir du programme java, il suffit de recuperer le
Runtime et d'executer la commande. (ca marche avec mySQL
mais je ne sais pas ce que ca donne avec d'autres sgbd...?!)

celine


> -------Message d'origine-------
> De : Laurent Forêt <l.foret@korom.net>
> Date : 19/03/2001 14:10:11
> 
> 
> 
> 
> > -----Message d'origine-----
> > De : cesbron@ifrance.com [mailto:cesbron@ifrance.com]De
la part de
> > Sebastien Cesbron
> > Envoyé : lundi 19 mars 2001 13:35
> > À : java@u-strasbg.fr
> > Objet : Création d'une BD
> >
> >
> > Salut,
> >
> > J'ai créé un modèle physique de données avec AMC et j'ai
généré un
> > script SQL de création de base.
> > Ce que j'aimerais faire c'est un petit programme Java
auquel je passe
> > les informations nécessaires (nom du driver, nom de la
base, user,
> > password et nom du fichier contenant le sql) pour qu'il
me créé mes
> > tables à partir d'une base vierge.
> > Mon problème, c'est de passer le sql contenu dans mon
fichier à la base.
> > Existe t'il un moyen pour passer un ensemble de requêtes
sql d'un seul
> > coup où dois je parser mon fichier pour envoyer mes
requêtes une par
> > une.
> >
> 
> A ma connaissance, non. Via JDBC.
> 
> Chaque requete SQL se termine par un ";", il est donc pas
difficile de créer
> une liste de requètes, a partir d'un fichier contenant
tes requetes. Puis
> les executer une par une sur le meme statement.
> 
> 
> Laurent Forêt
> Service développement
> 
> l.foret@korom.net 
> 
> www.korom.net 
> 
> 
> 
_________________________________________________________
Le journal des abonnés Caramail - http://www.carazine.com


From:           	Laurent Foret <l.foret@korom.net>
To:             	<java@u-strasbg.fr>
Subject:        	RE: _Criation_d'une_BD
Date sent:      	Tue, 20 Mar 2001 10:13:59 +0100
Send reply to:  	java@u-strasbg.fr



> -----Message d'origine-----
> De : Thierry Janaudy [mailto:janaudy@yahoo.com]
> Envoye : lundi 19 mars 2001 14:32
> A : java@u-strasbg.fr
> Objet : RE:_Criation_d'une_BD
>
>
> Tu peux executer des batchs:
> http://developer.java.sun.com/developer/Books/JDBCTutorial/index.html
>
> (section 3.4: Batch update)
>
> Be aware : jdbc 2.0
>
> -- t
>
Oui mais la methode addBatch(), ne prend qu'une requete SQL en parametres,
ce qui ne resoud pas le probleme posait.

En effet, Le fait de se servir des batchs permet d'executer toutes les
requetes en meme temps lors de l'appel de executebatch(), mais il faut les
ajouter au statement, les uns apres les autres.

Et,
      stmt = con.createStatement();

      stmt.addBatch("INSERT INTO COFFEES " +
               "VALUES('Amaretto', 49, 9.99, 0, 0)");
      stmt.addBatch("INSERT INTO COFFEES " +
               "VALUES('Hazelnut', 49, 9.99, 0, 0)");
      stmt.addBatch("INSERT INTO COFFEES " +
               "VALUES('Amaretto_decaf', 49,
               10.99, 0, 0)");
      stmt.addBatch("INSERT INTO COFFEES " +
               "VALUES('Hazelnut_decaf', 49,
               10.99, 0, 0)");

      stmt.executeBatch();

est equivalant au niveau du resultatdans la BD a:

      stmt = con.createStatement();

      stmt.execute("INSERT INTO COFFEES " +
               "VALUES('Amaretto', 49, 9.99, 0, 0)");
      stmt.execute("INSERT INTO COFFEES " +
               "VALUES('Hazelnut', 49, 9.99, 0, 0)");
      stmt.execute("INSERT INTO COFFEES " +
               "VALUES('Amaretto_decaf', 49,
               10.99, 0, 0)");
      stmt.execute("INSERT INTO COFFEES " +
               "VALUES('Hazelnut_decaf', 49,
               10.99, 0, 0)");



Alors qu'il me semble que le probleme etait :

       stmt = con.createStatement();

 stmt.executeBatchFile ("fichier contenant les batch SQL");

methode qui n'existe pas.

----------------------------------------------------------------------
Laurent Foret Service developpement

l.foret@korom.net <mailto:l.foret@korom.net>

www.korom.net <http://www.korom.net>


     

Date sent:      	Tue, 20 Mar 2001 12:15:24 +0100
From:           	Sebastien Cesbron <scesbron@ifrance.com>
To:             	java@u-strasbg.fr
Subject:        	[Fwd:  Création d'une BD]
Send reply to:  	java@u-strasbg.fr

Salut,

Voici la réponse que je voulais envoyer hier mais je me suis trompé dans
le send to, désolé pour Thierry.

> 
> J'ai bien remarqué que l'on pouvait exécuter des batchs mais
> apparamment, il faut les transmettre un par un, ce qui ne résout pas mon
> problème. Finalement j'ai opté pour la solution que Laurent proposait.
> Cepedant, je n'ai réussi à le faire qu'avec un StringTokenizer de la
> façon suivante :
> 
> BufferedReader l_reader = new BufferedReader(...);
> StringBuffer l_sql = new StringBuffer();
> String l_line = l_reader.readLine();
> while (l_line != null)
> {
>   l_sql.append(l_line);
> }
> StringTokenizer l_tokens = new StringTokenizer(l_sql.toString(),";");
> while (l_tokens.hasMoreTokens()) {
>   l_stmt.executeUpdate(l_tokens.nextToken());
> }
> 
> J'ai essayé précédemment de faire la même chose avec un StreamTokenizer
> mais je n'ai pas réussi. J'aurais tout de même préféré le faire suivant
> cette méthode donc si quelqu'un à un bout de code me montrant comment se
> servir du StreamTokenizer pour faire la même chose je suis preneur.
> 
> Seb
> 
> Thierry Janaudy wrote:
> >
> > Tu peux executer des batchs:
> > http://developer.java.sun.com/developer/Books/JDBCTutorial/index.html
> >
> > (section 3.4: Batch update)
> >
> > Be aware : jdbc 2.0
> >
> > -- t
> >
> > --- Laurent_Forêt <l.foret@korom.net> wrote:
> > >
> > >
> > >
> > > > -----Message d'origine-----
> > > > De : cesbron@ifrance.com
> > > [mailto:cesbron@ifrance.com]De la part de
> > > > Sebastien Cesbron
> > > > Envoyé : lundi 19 mars 2001 13:35
> > > > À : java@u-strasbg.fr
> > > > Objet : Création d'une BD
> > > >
> > > >
> > > > Salut,
> > > >
> > > > J'ai créé un modèle physique de données avec AMC
> > > et j'ai généré un
> > > > script SQL de création de base.
> > > > Ce que j'aimerais faire c'est un petit programme
> > > Java auquel je passe
> > > > les informations nécessaires (nom du driver, nom
> > > de la base, user,
> > > > password et nom du fichier contenant le sql) pour
> > > qu'il me créé mes
> > > > tables à partir d'une base vierge.
> > > > Mon problème, c'est de passer le sql contenu dans
> > > mon fichier à la base.
> > > > Existe t'il un moyen pour passer un ensemble de
> > > requêtes sql d'un seul
> > > > coup où dois je parser mon fichier pour envoyer
> > > mes requêtes une par
> > > > une.
> > > >
> > >
> > >  A ma connaissance, non. Via JDBC.
> > >
> > > Chaque requete SQL se termine par un ";", il est
> > > donc pas difficile de créer
> > > une liste de requètes, a partir  d'un fichier
> > > contenant tes requetes. Puis
> > > les executer une par une sur le meme statement.
> > >
> > >
> > > Laurent Forêt
> > > Service développement
> > >
> > > l.foret@korom.net <mailto:l.foret@korom.net>
> > >
> > > www.korom.net <http://www.korom.net>
> > >
> >
> > =====
> > ________________________________________
> > Thierry Janaudy (Independent consultant)
> > +44 77 52 14 3001
> > [cv]            http://www.mycgiserver.com/~janaudy/
> > [company]       http://www.jyperion.com/
> > [search engine] http://pharos.inria.fr/Java/
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Get email at your own domain with Yahoo! Mail.
> > http://personal.mail.yahoo.com/

__________________________________________________________________________
____ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos
emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
http://www.ifrance.com/_reloc/email.emailif



C'est fini ! Retour à l'accueil de la pseudo-archive