PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 10/05/2009 23:12:51

kaprice
Membre

JDBC 3 et postgres

Bonjour,

 
                     J'aimerais savoir comment connecter une application java à une BD postgres en utilisant JDBC 3 ?

                    Si vous pouvez faire comme un tutorial ça serait génial je n'ai pas beaucoup du temps pour faire des recherches sur le Net .
 
                    Les questions dont j'aimerais avoir des détails sont :

                             1) Driver Postgres (source de téléchargement et intégration à Eclipse )
                             2) Configuration de la connexion
                             3) Comment se connecter un schema ?


        Merci d'avance pour vos réponses




   Vive PostgresSQL le système de base de données libre rival des SGBD propriétaires de grande notoriété .

Hors ligne

#2 11/05/2009 10:26:27

flo
Membre

Re : JDBC 3 et postgres

1) Le driver est là : http://jdbc.postgresql.org/
Et la documentation y est aussi.
Après c'est du classique : tu dois mettre le .jar dans le Build Path d'Eclipse (je suppose que tu fais le build de ton projet par Eclipse)
Pour le déploiement il doit être dans le CLASSPATH de ton application.

2)
Avec une SimpleDataSource (Il y a 2 implémentations fournies selon les besoins : http://jdbc.postgresql.org/documentation/80/ds-ds.html )

        org.postgresql.ds.PGSimpleDataSource ds = new org.postgresql.ds.PGSimpleDataSource();
        ds.setDatabaseName("basetest");
        ds.setUser("postgres");
        ds.setPassword("postgres");
        
        try {
            Connection con = ds.getConnection();
[...]


Avec le DriverManager :

            // chaine de connexion
        String url="jdbc:postgresql:basetest";
       
        Connection conn = null;
       
        Statement st = null;
        ResultSet rs = null;
       
        try {
       
            Class.forName("org.postgresql.Driver");
            conn = DriverManager.getConnection(url,"postgres","postgres");


Les différentes formes possibles d'URL sont décrites ici :
http://jdbc.postgresql.org/documentatio … nnect.html

3)
Que veux-tu dire par "se connecter à un schéma?". Une connexion JDBC se connecte à une base, pas à un schéma.

Tu peux exécuter les ordres SQL en précisant le schéma des objets, par exemple :

    Statement st = con.createStatement();
    st.execute("select * from schema1.matable");

Sinon, si tu veux éviter de préfixer le nom des objets par le schéma, va voir ce post :
http://forums.postgresql.fr/viewtopic.p … 1392#p1392

Flo

Hors ligne

#3 11/05/2009 21:29:55

kaprice
Membre

Re : JDBC 3 et postgres

Merci flo,

  C'est exactement les réponses que je cherche .


                                     Merci infiniment

Hors ligne

#4 05/06/2009 17:53:04

djalouk
Membre

Re : JDBC 3 et postgres

Pour info, je suis dans le cadre d'une migration Oracle 9i -> PostgreSQL 8.3.

Sous Oracle avec le driver ojdbc14.jar :

Dans une requête, je recupére un champ de type NUMBER(10,0) qui est null (ce champ est non nullable dans sa table mais j'utilise une jointure externe, j'ai donc des correspondances avec la valeur null).
Via jdbc, je récupère bien null.


Sous PostgreSQL avec le driver postgresql-8.3-604.jdbc3.jar :

Je récupère la valeur 0, ce qui ne me convient pas puisque mes tests java sont basés sur la nullité ou non etc etc.


Je voulais donc savoir d'une part si ce comportement était normal et d'autre part s'il était possible de paramétrer ce comportement, au niveau de la base ? du driver ? ailleurs ? En effet, idéalement, j'aimerais ne pas modifier le code java.

Merci à vous.

Dernière modification par djalouk (05/06/2009 17:53:51)

Hors ligne

#5 05/06/2009 17:54:49

gleu
Administrateur

Re : JDBC 3 et postgres

Difficile de dire sans voir la requête.


Guillaume.

Hors ligne

#6 07/10/2010 19:43:51

davidd
Membre

Re : JDBC 3 et postgres

Bonjour,

J'ai une application JDK6 hébergé sur Tomcat 6 donc JDBC 3 et j'exploite une BDD postgres 8.4.

le site http://jdbc.postgresql.org/download.html n'est pas très clair.

Il est préférable  :
1/ le driver JDBC 3 (mais prévu jusqu'à jdk 1.5).
2/ ou le driver JDBC 4 compatible jdk6 mais sur un tomcat6/jdbc3
3/ d'upgrade le pool tomcat (DBCP) en JDBC 4
4/ downgrader le jdk


J'ai posté un nouveau fil. ici http://forums.postgresql.fr/viewtopic.php?id=1011

Je suis en JDK 1.6 en non 1.5.

Dernière modification par davidd (08/10/2010 14:11:58)

Hors ligne

#7 07/10/2010 21:07:20

flo
Membre

Re : JDBC 3 et postgres

Bonjour,

Je voudrais bien vous aider, mais j'ai bien du mal à comprendre ce que demande Tomcat.
Tomcat6 fonctionne avec quelle JVM? (j'ai cherché un peu mais j'ai pas envie d'y passer la nuit wink )

En fait, je dirais que c'est simple : si Tomcat 6 est en JVM 1.5, alors JDBC 3.

Sinon, il vaut mieux ouvrir un nouveau fil de discussion pour une nouvelle question.

Hors ligne

Pied de page des forums