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

JDBC Java Discussion :

PreparedStatement et create database


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 16
    Points : 18
    Points
    18
    Par défaut PreparedStatement et create database
    Bonjour,

    Je développe avec MySQL.

    Je ne parviens pas à créer une base de données avec un PreparedStatement,
    voici les codes qui nous intéressent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    try {
    				ctxConnect.getCreateDB().setString(1, "babar");
    				ctxConnect.getCreateDB().execute();
    //ce qui suis fonctionne
    //				Statement test = ctxConnect.getConnection().createStatement();
    //				test.execute("CREATE DATABASE roger");
    			} catch (SQLException e) { e.printStackTrace(); }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public PreparedStatement getCreateDB() {
    		if(createDB == null) {
    			try {
    				createDB = connect.prepareStatement("CREATE DATABASE ?");
    			} catch (SQLException e) { e.printStackTrace(); }
    		}
    		return createDB;
    	}
    Le code d'erreur : 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 ''babar'' at line 1

    Est-il possible de creer une base de données avec un PreparedStatement ?
    Est-ce autre chose .

    Merci de vos réponses

  2. #2
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    je pense qu'il doit interpréter ta requête de la façon suivante :
    create database "babar"

    Est-ce que tu peux afficher la requête que tu envois pour être sûr ? Si c'est le cas,il faut que tu encodes ta requête pour ne pas mettre les "

  3. #3
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    tu devrais plutot faire qqe chose comme ça

    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
    
    public PreparedStatement getCreateDB(String databaseName) {
    //FIXME test sur le nom de la base pour qu'il ne soit pas null ou vide histoire de ne pas te retrouver avec un nullpointerexception
    StringBuilder requestSQL = new StringBuilder();
    requestSQL.append("CREATE DATABASE ");
    requestSQL.append(databaseName);
    
    
            if(createDB == null) {
                try {
                    createDB = connect.prepareStatement(requestSQL.toString());
                } catch (SQLException e) { e.printStackTrace(); }
            }
            return createDB;
        }
    et tu l'appelles comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    try {
                    ctxConnect.getCreateDB("babar");
                    ctxConnect.getCreateDB().execute();
    
                } catch (SQLException e) { e.printStackTrace(); }
    essaies comme ça

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 16
    Points : 18
    Points
    18
    Par défaut
    Je n'ai pas eu le temps de tester cette solution, mais j'ai réussi à me débrouiller.
    J'essaierai ta solution si j'ai le temps.

    Merci pour ta réponse.

Discussions similaires

  1. [VB .NET]create database
    Par razikos18 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 15/05/2006, 14h04
  2. CREATE DATABASE avec dbExpress
    Par pghislain dans le forum Bases de données
    Réponses: 3
    Dernier message: 30/11/2005, 21h36
  3. Create Database
    Par Soulama dans le forum Access
    Réponses: 4
    Dernier message: 22/10/2005, 22h25
  4. Réponses: 8
    Dernier message: 04/10/2005, 19h27
  5. CREATE DATABASE
    Par willowII dans le forum Débuter
    Réponses: 1
    Dernier message: 13/01/2005, 13h48

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