Bonjour à tous.
Je cherche à créer un programme qui utilise une DB PosgreSQL (pour apprendre... ce qui signifie que je suis un plot. Désolé donc si la / les question sont bêtes).
Pour commencer, je veux qu'au démarrage, le programme vérifie que la base de données est présente (et la crée en le signifiant si elle n'existe pas). Pour ce faire, je veux exécuter la requête :
Alors, je vois un peu comment mettre le JDBC en Java :
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 DO $do$ DECLARE _db TEXT := 'nomDB'; _user TEXT := 'postgres'; _password TEXT := 'dbpass'; BEGIN CREATE EXTENSION IF NOT EXISTS dblink; -- enable extension IF EXISTS (SELECT 1 FROM pg_database WHERE datname = _db) THEN RAISE NOTICE 'Database already exists'; ELSE PERFORM dblink_connect('host=localhost user=' || _user || ' password=' || _password || ' dbname=' || current_database()); PERFORM dblink_exec('CREATE DATABASE ' || _db); END IF; END $do$
Problèmes : je ne vois pas du tout comment envoyer la requête : je fourre tout dans un String ? Du coup ça ne va pas planter juste parce que je fais des retours ligne ? Le RAISE NOTICE va revenir dans mon ResultSet ?
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 try { Class.forName("org.postgresql.Driver"); System.out.println("Driver O.K."); String url = "jdbc:postgresql://localhost:5432/postgres"; String user = "postgres"; String passwd = "dbpass"; Connection conn = DriverManager.getConnection(url, user, passwd); System.out.println("Connexion effective !"); Statement s = conn.createStatement(); ResultSet rs = s.executeQuery(???); } catch (ClassNotFoundException | SQLException e)
Merci d'avance pour vos réponses
Partager