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

Persistance des données Java Discussion :

Création de plusieurs procédures stockées


Sujet :

Persistance des données Java

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Février 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : Santé

    Informations forums :
    Inscription : Février 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Création de plusieurs procédures stockées
    Bonjour à tous,

    Pourriez-vous m'aider à résoudre mon problème :

    Cela fait quelques jours que je n'arrive pas à trouver une solution complète.

    Je dois créer un programme qui exécute la création de diverses procédures stockées sous éclipse.

    Pour cela j'utilise une classe qui contient les méthodes avec toutes les procédures : ProcedureSQL

    Ensuite je rempli mon POJO Paramètre : LectureParametreDivers.processProperties()

    J'ouvre ma connexion.

    Je crée le Statement et je lui passe ma chaîne de caractères contenant toutes mes procédures stockées.

    Voici le Main :


    """""""""""""""""""""""""
    public static void main(String[] args) throws SQLException
    {
    // TODO Auto-generated method stub
    ProcedureSQL pSQL = new ProcedureSQL();
    LectureParametreDivers lectureParametreDivers=new LectureParametreDivers();
    Parametre parametre=lectureParametreDivers.processProperties();
    Connexion.ouvrirConnexion(parametre);
    Statement st = Connexion.getConnect().createStatement();
    st.execute(pSQL.toString());
    st.close();
    Connexion.fermerConnexion();
    }
    """"""""""""""""""""""""""

    A fonctionne :

    Si Ma String (pSQL) retourne qu'une seule procédure, ça fonctionne.

    voir ci dessous :

    """""""""""""""""""""""""""""""""""""""""""
    public class ProcedureSQL {

    private String str="";//"USE `mmr`; ";
    public ProcedureSQL()
    {
    //dropProcedure();
    rechercherPatientMedidocNom();
    /*rechercherPatientMedidocPrenom();
    rechercherPatientMedidocPrenomNom();
    rechercherPatientMedidocDateNaiss();
    rechercherPatientMedidocNiss();
    insertionDansTablePatient();
    insertionDansTableSoignant();
    insertionDansTableLocalite();*/
    }

    private void dropProcedure() {
    // TODO Auto-generated method stub

    }

    private void rechercherPatientMedidocNom()
    {
    str+=""+//"DROP PROCEDURE IF EXISTS `RECHERCHEPARNOM`; "+
    "CREATE PROCEDURE `RECHERCHEPARNOM`(IN `nom` VARCHAR(50)) "+
    "SELECT name, firstname, inv_date, niss "+
    "FROM PATIENT "+
    "INNER JOIN Donneesdiv ON fk_ID_DONNEESDIV = ID_DONNEESDIV "+
    "WHERE name LIKE @nom; ";
    }
    private void rechercherPatientMedidocPrenom()
    {
    str+=""+//"DROP PROCEDURE IF EXISTS `RECHERCHEPARPRENOM`; "+
    "CREATE PROCEDURE `RECHERCHEPARPRENOM`(IN `prenom` VARCHAR(50)) "+
    "SELECT name,firstname,inv_date,niss "+
    "FROM PATIENT "+
    "INNER JOIN Donneesdiv ON fk_ID_DONNEESDIV=ID_DONNEESDIV "+
    "WHERE FIRST_NAME like @prenom; ";
    }
    """"""""""""""""""""""""""""""""""""
    (je n'ai pas mis tout le code car cet exemple suffit mais je le mets à disposition en pièce jointe)
    (les codes en commentaire sont diverses tests qui ont échoués)

    La seule méthode non en commentaire exécutée contenant une procédure stockée se retrouve bien dans mon SGBD.

    B Erreur :
    Si Ma String (pSQL) retourne plus d'une procédure, ça plante.

    console :
    """"""""""""""""""""""""""""""
    16 avr. 2013 18:14:52,272[main] DEBUG mmr.logger.ClasseLogger - connexion réussie
    Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE PROCEDURE `RECHERCHEPARPRENOM`(IN `prenom` VARCHAR(50)) SELECT name,first' at line 1
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.Util.getInstance(Util.java:386)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1053)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4096)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4028)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2490)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2651)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2728)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2678)
    at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:894)
    at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:732)
    at mmr.oldData.sql.LancementProcedureStockee.main(LancementProcedureStockee.java:23)
    """"""""""""""""""""""""""""""
    Ce qui est fort étonnant, c'est qui si je copie à l'exactitude mes procédures dans mes méthodes et que je les colles dans PHPMyAdmin et que j’exécute le code, il m'enregistre bien toutes mes procédures...

    Auriez-vous une idée qui me décoincerais?

    J'utilise :
    *java jdk6
    *Eclipse v. JUNO
    *Connecteur mysql v. 5.1.22
    *XAMPP portable v.3.1.0 beta 4

    Merci d'avance pour vos réponses.

    ps : si besoin, je peux mettre tout le projet en pièce jointe.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. probléme de création d'une procédure stockée
    Par hicham20 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 13/05/2009, 16h29
  2. Réponses: 2
    Dernier message: 08/09/2008, 09h06
  3. création package de procédure stocké oracle
    Par ouadie99 dans le forum C#
    Réponses: 3
    Dernier message: 14/05/2008, 17h51
  4. Création d'une procédure stockée
    Par david71 dans le forum SQL
    Réponses: 5
    Dernier message: 16/01/2008, 17h45
  5. création triggers et procédure stockées
    Par jhons dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 12/07/2006, 17h54

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