Vous n'êtes pas identifié(e).
Pages : 1
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
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
Merci flo,
C'est exactement les réponses que je cherche .
Merci infiniment
Hors ligne
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
Difficile de dire sans voir la requête.
Guillaume.
Hors ligne
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
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 )
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
Pages : 1