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 :

JDBC et postgresql


Sujet :

JDBC Java

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 491
    Points : 172
    Points
    172
    Par défaut JDBC et postgresql
    Hello,

    Je développe une appli avec laquelle je me connecte à postgresql via. JDBC. Pour ce faire j'utilise le driver téléchargeable ici de la manière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    PGPoolingDataSource pool = new PGPoolingDataSource();
    pool.setServerName(dbParams.ip);
    pool.setDatabaseName(dbParams.dbName);
    pool.setUser(dbParams.user);
    pool.setPassword(dbParams.password);
    pool.setMaxConnections(20);
    J'ai un petit poblème: je n'arrive a executer aucune des commandes qui contiennent un \. J'ai réussi à m'en passer pour lister les DB, mais pour l'execution d'un script je ne vois pas comment faire... Mon script est supposé créer la base, l'ensemble des tables, des contraintes, des indexes etc... Bref un script de création quoi... Voici le bout de code d'interêt
    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
     
    Connection c = pool.getConnection() ;
    Statement stmt = c.createStatement() ;
     
    try {
        stmt.execute("CREATE DATABASE " + dbName+" WITH OWNER = \""+user+"\"");
    }
    catch(SQLException e) {
        if(e.getMessage().contains("already exists")) {
            stmt.execute("DROP DATABASE " + dbName);
            stmt.execute("CREATE DATABASE " + dbName+" WITH OWNER = \""+user+"\"");
        }
        else throw e ;
    }
     
    stmt.execute("CREATE DATABASE " + dbName+" WITH OWNER = \""+user+"\"");
     
    // Execute creation script
    stmt.execute("\\i "+SCRIPT_PATH+"create_db.sql");
    stmt.close();
    m.close();
    J'obtient alors systématiquement l'exception suivante:
    org.postgresql.util.PSQLException: ERROR: syntax error at or near "\"
    Position: 1
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2062)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:479)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:353)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:345)
    Quelqu'un a-t-il une idée ?
    Merci d'avance!

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Points : 562
    Points
    562
    Par défaut
    Au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        stmt.execute("CREATE DATABASE " + dbName+" WITH OWNER = \""+user+"\"");
    Essais ceci (changer le caractere " par ')
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        stmt.execute("CREATE DATABASE " + dbName+" WITH OWNER = '"+user+"'");

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 491
    Points : 172
    Points
    172
    Par défaut
    Ce n'est pas le problème

    Le problème est à la ligne suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    stmt.execute("\\i "+SCRIPT_PATH+"create_db.sql");

Discussions similaires

  1. jdbc java postgresql
    Par tatarifa dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 14/12/2005, 08h51
  2. Jbuilder X et JDBC de PostGreSQL...
    Par smacs63 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 13/12/2005, 13h44
  3. JDBC + connexion postgreSQL
    Par BARBIER dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 08/12/2005, 11h17
  4. [Jdbc et postgresql ] connexion impossible a la base
    Par tasdorjtador dans le forum JDBC
    Réponses: 6
    Dernier message: 11/05/2005, 21h19
  5. pilote jdbc de postgresql-8.0.1 pour win
    Par hamido dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 14/03/2005, 21h43

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