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 :
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$
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
 
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)
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 ?

Merci d'avance pour vos réponses