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

Servlets/JSP Java Discussion :

Exécution d'un fichier SQL dans un fichier JSP


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club Avatar de Tyrael62
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 90
    Points : 54
    Points
    54
    Par défaut Exécution d'un fichier SQL dans un fichier JSP
    Bonjour à tous,
    Je débute en JAVA/JSP et dans le cadre du projet sur lequel je travaille actuellement , j'aimerais pouvoir à partir d'une page JSP lancer un script SQL contenant des requêtes d'insertions et de mise à jour de la base de données.
    Je sais que je pourrais entrer directement mes requêtes dans mon fichier JSP mais dans le but de simplifier la tâche aux personnes ayant à rajouter ou à modifier les requêtes sans avoir à toucher le code JSP/JAVA.
    J'attends vos réponses , merci.

  2. #2
    Membre averti Avatar de florentB
    Homme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Points : 441
    Points
    441
    Par défaut
    J'ai eu à peu près le même soucis que toi.
    J'ai opté pour un fichier properties qui est loadé au démarrage du serveur (passé en paramètre du script démarrant le serveur). Un singleton java contient des attributs qui correspondent aux requetes. Un get par attribut et le tour est joué.
    Par contre à chaque fois que tu change le fichier de properties, tu dois redémarrer le serveur.

  3. #3
    Membre du Club Avatar de Tyrael62
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 90
    Points : 54
    Points
    54
    Par défaut
    Finalement , j'ai opté pour une autre solution mais je me retrouve un peu dans une impasse car apparemment il ne m'éxécute rien!

    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
     
    <%@ page import="java.io.*" %>
     
    <%
     
    try {
                Process p = null;
                Runtime rt = Runtime.getRuntime();
                p = rt.exec("cat fichier.sql | mysql -h hôte -u login -pmotdepasse");
                java.io.BufferedReader br= new java.io.BufferedReader( new InputStreamReader(p.getInputStream()));
                String s = null;
                while ((s = br.readLine()) != null)
                    System.out.println(s);
            }catch (Exception e) {}
     
    %>
    Comme vous pouvez le voir , j'ai lancé directement la commande linux correspondante pour lancer mes requêtes mais au final rien n'est rajouté dans la base de données!
    Si quelqu'un pourrait me dire ce qui cloche dans mon code, je suis tout ouie!
    PS: Je précise que j'ai testé la commande sous la console et elle fonctionne parfaitement!

  4. #4
    Membre du Club Avatar de Tyrael62
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 90
    Points : 54
    Points
    54
    Par défaut
    Bon voilà , j'ai réussi à faire ce que je voulais!Je vous laisse ma méthode et le code correspondant en espèrant que cela pourra servir à d'autres personnes rencontrant le même cas.
    Insertion des valeurs dans la base de données via un fichier .sh sous linux :
    valideImport.sh
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #!/bin/sh 
     
    HOST="localhost:8080"
    USER="login"
    PASSWORD="pass"
    SQL_FILE="/home/esup/sof/valideImport.sql"
     
    cat  $SQL_FILE | mysql -h $HOST -u $USER -p$PASSWORD
    Insertion d'un lien dans l'application pointant vers valideImport.jsp
    valideImport.jsp
    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
     
    <%@ page import="java.io.*" %>
     
    <%
    String SQL_FILE_EXEC="/home/esup/PROD/webapps/uPortal/private/valideImport.sh";
     
    try
    {
    final Runtime rt = Runtime.getRuntime();
    Process proc = rt.exec(SQL_FILE_EXEC);
    } catch (IOException e)
    {
    e.printStackTrace();
    }
     
    %>
    Ne pas oublier de bien écrire le fichier.sql

    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
    /*==============================================================*/
    /* Requete de validation d'une formation après import            */
    /*==============================================================*/
     
    Use esup_sof1;
    /* Desactivation des contraintes de cles etrangeres - uniquement pour mysql */
    SET FOREIGN_KEY_CHECKS = 0;
     
    /* Remplissage des champs obligatoires
     
    insert into FUN_PROF_UTI_PERS values("tpeltier","ADMIN","O");
    insert into FUN_PROF_UTI_PERS values("xbeguin","SCOL","O");
     
    /* Reactivation des contraintes de cles etrangeres - uniquement pour mysql */
    SET FOREIGN_KEY_CHECKS = 1;
    Voilà , je vous remercie même si j'ai finalement finis par trouver moi-même

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL-5.6] Exporter les résultats d'une requête SQL dans un fichier .sql ou .txt
    Par js8bleu dans le forum Requêtes
    Réponses: 1
    Dernier message: 17/09/2013, 10h13
  2. Appel fichier SQL via un fichiers SQL
    Par tibjedi dans le forum Administration
    Réponses: 2
    Dernier message: 03/03/2011, 11h17
  3. [ADO] Exécuter des requêtes contenues dans un fichier SQL
    Par Lucas Panny dans le forum Visual C++
    Réponses: 1
    Dernier message: 29/01/2008, 06h35
  4. Exécuter un fichier SQL dans Access
    Par FredFrance21 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 11/01/2008, 13h37
  5. [SQL] Importer un fichier .sql dans une base de données avec PHP
    Par budiste dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 23/06/2006, 14h15

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