IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Comment exécuter un fichier SQL à partir d'un choix radio button


Sujet :

Développement Web en Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Points : 81
    Points
    81
    Par défaut Comment exécuter un fichier SQL à partir d'un choix radio button
    Bonjour

    J'ai une page jsf ( xhtml ), qui contient 2 bouttons radios,
    le premier: si l'utilisateur veut executer un fichier sql
    le deuxième: si les données existent déjà dans la BD

    Ce que je veux faire, c'est quand l'utilisateur choisit le premier choix et clique sur valider, un fichier .sql ( qui se trouve dans un dossier statique, après je vais chercher comment faire le browse ) s'execute et remplit une BD oracle.

    J'ai vraiment besoin de votre aide

  2. #2
    Membre du Club Avatar de mahbool
    Inscrit en
    Octobre 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 27
    Points : 45
    Points
    45
    Par défaut
    bonjour
    si j'ai bien compris tu as un ficher contenant requet sql tu veux lexecuter
    donc voici une idéé consite a lire lire le fichier et l'executer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    public class ReadFile {
    	public static void main(String[] args){
    		String que1="";
    		String fichier ="fichiertexte.txt";
     
    		//lecture du fichier texte	
    		try{
    			InputStream ips=new FileInputStream(fichier); 
    			InputStreamReader ipsr=new InputStreamReader(ips);
    			BufferedReader br=new BufferedReader(ipsr);
    			String ligne;
    			while ((ligne=br.readLine())!=null){
    				System.out.println(ligne);
    				que1+=ligne+"\n";
     
    			}
    			br.close(); 
    			Statement stat = null;
    			ResultSet rs = null;
    			Session session = this.getSession();
    			System.out.println(<<<<<<<<<<"+session.createSQLQuery(que1).list().size()+">>>>>>>>>");
    			stat = session.connection().createStatement();
    			rs = stat.executeQuery(que1.toString());
     
    		}		
    		catch (Exception e){
    			System.out.println(e.toString());
    		}
    }

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Points : 81
    Points
    81
    Par défaut
    J'ai une erreur, il me dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Session cannot be resolved to a type
    il souligne en rouge aussi le This

    Sinon j'ai une page ou j'ai mes bouttons radios
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    <h:selectOneRadio value="">
    					   	<f:selectItem itemValue="ExecuterFichier" itemLabel="Executer fichier externe" />
    					   	<f:selectItem itemValue="DonneesExistante" itemLabel="Données déjà existante dans la base" />
    					   	<f:selectItem itemValue="un fichierPlat" itemLabel="Données se trouvent dans un fichier plat" />
    				</h:selectOneRadio>
    Quand il clique sur "Executer fichier externe" il execute le code que tu m'avais donné. et passe à une page " le fichier a été executé "

  4. #4
    Membre du Club Avatar de mahbool
    Inscrit en
    Octobre 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 27
    Points : 45
    Points
    45
    Par défaut
    salut désolé pr le retard
    voila le code avec qulque rectification ; je l'ai essayé et ca fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    		String que1="";
    			String fichier ="C:\\workspace\\fichiertexte.txt";
     
    			//lecture du fichier texte	
    			try{
    				InputStream ips=new FileInputStream(fichier); 
    				InputStreamReader ipsr=new InputStreamReader(ips);
    				BufferedReader br=new BufferedReader(ipsr);
    				String ligne;
    				while ((ligne=br.readLine())!=null){
    					System.out.println(ligne);
    					que1+=ligne+"\n";
    					System.out.println(">>>>>>>>>>>>"+que1);
    				}
    				br.close(); 
     
    				Statement stat = null;
    				ResultSet rs = null;
    				Session session = this.getSession();
    				stat = session.connection().createStatement();
    				stat.execute(que1.toString());
     
    			}		
    			catch (Exception e){
    				System.out.println(e.toString());
    			}
     
    			return null;}
    s'il y'a quelque chose n’hésite pas a me demander d’explication

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Points : 81
    Points
    81
    Par défaut
    Bonjour,

    J'ai toujours Session qui est souligné en rouge

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Points : 81
    Points
    81
    Par défaut
    Tu peux STP coller toute la classe, parceque j'ai pas compris le dernier

  7. #7
    Membre du Club Avatar de mahbool
    Inscrit en
    Octobre 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 27
    Points : 45
    Points
    45
    Par défaut
    est ce que tu as mis en haut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import org.hibernate.Session;

  8. #8
    Membre du Club Avatar de mahbool
    Inscrit en
    Octobre 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 27
    Points : 45
    Points
    45
    Par défaut
    pour le return null c'est juste a cause du type de retoure de la methode ,en fait tu n'as pas besion e'un retour donc tu met comm ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
     
    public void executeFile() {
     
     
     
    			String que1="";
    			String fichier ="C:\\workspace\\fichiertexte.txt";
     
    			//lecture du fichier texte	
    			try{
    				InputStream ips=new FileInputStream(fichier); 
    				InputStreamReader ipsr=new InputStreamReader(ips);
    				BufferedReader br=new BufferedReader(ipsr);
    				String ligne;
    				while ((ligne=br.readLine())!=null){
    					System.out.println(ligne);
    					que1+=ligne+"\n";
    					System.out.println(">>>>>>>>>>>>"+que1);
    				}
    				br.close(); 
     
    				Statement stat = null;
    				ResultSet rs = null;
    				Session session = this.getSession();
    				stat = session.connection().createStatement();
    				stat.execute(que1.toString());
     
    			}		
    			catch (Exception e){
    				System.out.println(e.toString());
    			}
     
    			return null;
    			}

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Points : 81
    Points
    81
    Par défaut
    Voici l'erreur que j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Session cannot be resolved to a type
    alors que j'ai importé tout ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    import java.io.*;
    import java.sql.*;
    import java.util.*;
    import java.*;
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.SessionScoped;

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Points : 81
    Points
    81
    Par défaut
    j'ai rajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import org.hibernate.Session;
    il me dit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    The import org.hibernate cannot be resolved

  11. #11
    Membre du Club Avatar de mahbool
    Inscrit en
    Octobre 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 27
    Points : 45
    Points
    45
    Par défaut
    cette methode devre etre mise dans ta DAO ensuite tu l appel a travers ton contrôleur

  12. #12
    Membre du Club Avatar de mahbool
    Inscrit en
    Octobre 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 27
    Points : 45
    Points
    45
    Par défaut
    peut tu me montrer ta classe DAO stp pour que je puisse t'aider.

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Points : 81
    Points
    81
    Par défaut
    Voilà ce que j'ai

    Login.xhtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml"
        xmlns:ui="http://java.sun.com/jsf/facelets"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:f="http://java.sun.com/jsf/core">
     
    <ui:composition template="/WEB-INF/templates/BasicTemplate.xhtml">
        <ui:define name="content">
            <h:form>
     
    				<h:selectOneRadio value="">
    					   	<f:selectItem itemValue="ExecuterFichier" itemLabel="Executer fichier externe" /> 
    					   	<f:selectItem itemValue="DonneesExistante" itemLabel="Données déjà existante dans la base" />  <br />
    				</h:selectOneRadio>
    			<h:commandButton value="Valider" action="valider"></h:commandButton>
            </h:form>
        </ui:define>
     
     
    </ui:composition>
    </html>
    Qui doit appeller la classe Bean que tu m'avais donné en haut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    import java.io.*;
    import java.sql.*;
    import java.util.*;
    import java.*;
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.SessionScoped;
    import org.hibernate.Session;
     
    public class ImporterSql {
    	String que1="";
    	String fichier ="C:\\workspace\\fichiertexte.txt";
     
    	public void executeFile() {
     
     
     
    		//lecture du fichier texte	
    		try{
    			InputStream ips=new FileInputStream(fichier); 
    			InputStreamReader ipsr=new InputStreamReader(ips);
    			BufferedReader br=new BufferedReader(ipsr);
    			String ligne;
    			while ((ligne=br.readLine())!=null){
    				System.out.println(ligne);
    				que1+=ligne+"\n";
    				System.out.println(">>>>>>>>>>>>"+que1);
    			}
    			br.close(); 
     
    			Statement stat = null;
    			ResultSet rs = null;
    			Session session = this.getSession();
    			stat = session.connection().createStatement();
    			stat.execute(que1.toString());
     
    		}	
    		catch (Exception e){
    			System.out.println(e.toString());
    		}
     
     
    		}
    }

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Points : 81
    Points
    81
    Par défaut
    Ce que je veux faire c'est que, quand l'utilisateur choisit executer fichier externer et clique sur valider, il execute le fichier .sql

  15. #15
    Membre du Club Avatar de mahbool
    Inscrit en
    Octobre 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 27
    Points : 45
    Points
    45
    Par défaut
    oui je sais,mais il passer par un provider (hibernate ou jpa) et ça diffère car ton action consiste a interrogé la base de données donc il faut préciser ton provider en plus il n'est pas conseillé de passer directement depuis ton contrôleur et ce n'est du n_tiers ,je propose de passer par un dao et un service qui appelle la fonction ensuite ça vient le contrôleur

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Points : 81
    Points
    81
    Par défaut
    Merci mahbool, mais j'ai pas compris ton dernier post ... sinon concrètement qu'est ce que je dois faire ? stp je suis vraiment bloqué sur ce point ( sachant que je suis déutant dans ce domaine )

  17. #17
    Membre du Club Avatar de mahbool
    Inscrit en
    Octobre 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 27
    Points : 45
    Points
    45
    Par défaut
    salut;ecoute est ce que tu as un fonction qui insert des données dans ta base ,si oui peux tu me la montrer avec tte les couches jusqu'à l'entité pour que je puisse savoir exactement avec quoi tu travail pour les technologies

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 318
    Points : 81
    Points
    81
    Par défaut
    Merci pour ta disponibilité

    J'ai pas encore de fonction qui me permet d'executer les insert qui se trouve dans mon fichier.sql.

    j'ai un fichier choix.xhtml qui appel la classeBean ( qui contient la méthode d'execution du fichier ) c'est tout ce que j'ai

  19. #19
    Membre du Club Avatar de mahbool
    Inscrit en
    Octobre 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 27
    Points : 45
    Points
    45
    Par défaut
    salut ,en fait si tu es entrain de réaliser une application web J2EE il te faudra toute une architecture et une méthodologie de travail(persistance , transaction ... ) avec les outils correspondant ceci tu pourras le trouver dans les forum et plusieurs tutoriels ,mais pour ton problème actuel il te suffit juste un classe java qui fera l'affaire voir ici et tu lui rajoute la méthode de lecture du fichier publiée auparavant

Discussions similaires

  1. comment exécuter un script sql à partir de la ligne de commande
    Par feros2184 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/05/2009, 22h01
  2. Réponses: 1
    Dernier message: 02/04/2007, 12h23
  3. Comment exécuter un fichier .sql?
    Par alexandrebergercyr dans le forum Oracle
    Réponses: 2
    Dernier message: 07/03/2007, 21h57
  4. Comment exécuter un fichier SQL ?
    Par NicaeaCivitas dans le forum JDBC
    Réponses: 3
    Dernier message: 09/11/2006, 12h25
  5. [C# .Net 2.0] Comment exécuter un fichier SQL ?
    Par bisounux dans le forum Windows Forms
    Réponses: 4
    Dernier message: 20/09/2006, 21h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo