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

Requêtes MySQL Discussion :

créer une table ds MySQL à partir de java


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut créer une table ds MySQL à partir de java
    Bonjour,
    en effet, mon programme java arrive à se connecter à la base MySql et arrive à créer une table dans une BD mySql et à la remplir av des insert ,mais le problème est que ceci n'est applicable que qd le nombre d'attributs de la nouvelle table à créer n'est pas très grand!
    Car, lorsque le nombre des champs de la table est très grand(exp:17),le programme n'arrive pas à la créer et une exception SqlException est déclenchée!!j'arrive pas à trouver la solution! ?
    j'espere que quelqu'un pourra m'aider!
    Merci d'avance!

  2. #2
    Membre éprouvé
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Points : 1 249
    Points
    1 249
    Par défaut
    Que dit l'exception ? La requête passe-t-elles si on l'entre directement dans mysql ? Quel est le CREATE TABLE qui échoue ?

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Sivrît
    Que dit l'exception ? La requête passe-t-elles si on l'entre directement dans mysql ? Quel est le CREATE TABLE qui échoue ?
    bonsoir,
    merci pour m'avoir répondu!
    c'est possible de créer une table avec plusieurs champs directement dans my sql,j'ai essayé de le faire pour tester et ca a marché mais pa à travers mon code!
    voici le code:
    <CODE>
    public void createTable(String createSql)
    {try {
    Statementstmt=connection.createStatement();
    //connection est déja bien configurée
    int nbMaj = stmt.executeUpdate(createSql);
    }
    catch (SQLException e) {
    System.err.println("SQLException : error in creating table");}
    }
    </CODE>

    sachant que le System.out.println de createSql donne :
    create table labor-neg-data (duration float, wage-increase-first-year float, wage-increase-second-year float, wage-increase-third-year float, cost-of-living-adjustment varchar(5), working-hours float, pension varchar(11), standby-pay float, shift-differential float, education-allowance varchar(4), statutory-holidays float, vacation varchar(14), longterm-disability-assistance varchar(4), contribution-to-dental-plan varchar(5), bereavement-assistance varchar(4), contribution-to-health-plan varchar(5), class varchar(5))

    Dans ce cas, ca ne marche pas il ya une exception:
    SQLException : error in creating table

    qd la requete contient un nombre minime de champ il n'ya pa d'exception et la table est réellement créer ds une base de donnée mySql.le System.out.println de createSql ds ce cas donne :
    create table cpu (MYCT float, MMIN float, MMAX float, CACH float, CHMIN float, CHMAX float, class float)

    j'espere que vous pouvez me répondre!!
    merci d'avance!

  4. #4
    Membre éprouvé
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Points : 1 249
    Points
    1 249
    Par défaut
    Dans ces cas là une des premières choses à faire est d'essayer de passer directement la requête à mysql, qui ici m'a renvoyé :
    ERROR 1064 (42000): 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 '-neg-data (duration float, wage-increase-first-year float, wage-increase-second-' at line 1
    En fait le problème ne vient pas de la taille mais des noms. Le signe moins '-' passe mal dans les noms. Dans l'ensemble il faut lui privilégier '_' qui passe sans problème. S'il faut vraiment mettre le signe moins dans un nom (ou des espaces etc.) il faut entourer le nom par des backquotes '`'.


    Sinon ce code java a un défaut : il mange le message de l'exception et n'en laisse aucune trace. Un bon vieux
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    e.printStackTrace();
    aurait aidé au diagnostique ou encore :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    System.err.println("Error in creating table: " + e);


    Note: les balises dans les messages sont à encadrer par des '[' plutôt que des '<'. Et donc ici commencer par [code=java]

Discussions similaires

  1. [AC-2003] Créer une table temporaire a partir d'une requête en VBA
    Par Williamm dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 23/06/2011, 08h55
  2. Réponses: 3
    Dernier message: 24/04/2009, 16h56
  3. créer une table ds MySQL à partir de java
    Par emin87 dans le forum JDBC
    Réponses: 14
    Dernier message: 06/04/2007, 17h55
  4. Es-ce possible de créer une table MySQL avec MS Excel
    Par pierrot10 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 16/10/2005, 06h30
  5. Créer une table à partir d'une autre dans un script
    Par Dam)rpgheaven dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 24/06/2005, 10h55

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