Exécution de requêtes SQL basiques

Interroger une base de données PostgreSQL en Java

Miller Trujillo

Staff Software Engineer

Instructions dans JDBC

  • Utilisez executeQuery() pour les requêtes SELECT
  • Utilisez executeUpdate() pour INSERT, UPDATE, DELETE

$$

Instruction comme messager

Interroger une base de données PostgreSQL en Java

Création d'une instruction

String sql = "SELECT book_id, title, publication_year FROM books";

try (Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql)) {
Interroger une base de données PostgreSQL en Java

Lire les résultats avec ResultSet

String sql = "SELECT book_id, title, publication_year FROM books";
try (Connection conn = DriverManager.getConnection(url, user, password);
     Statement stmt = conn.createStatement();
     ResultSet rs = stmt.executeQuery(sql)) {

while (rs.next()) {
int id = rs.getInt("book_id"); String title = rs.getString("title"); int year = rs.getInt("publication_year"); System.out.println(id + " | " + title + " (" + year + ")");}}
1 | Effective Java (2018)
2 | Clean Code (2008)
...
Interroger une base de données PostgreSQL en Java

Gestion des exceptions

try {
    Statement stmt = conn.createStatement();

stmt.executeQuery("SELECT * FROM unknown_table");
} catch (SQLException e) {
System.err.println("Erreur : " + e.getMessage()); System.err.println("SQLState : " + e.getSQLState()); }
Erreur : ERROR: relation "unknown_table" does not exist
  Position : 15
SQLState : 42P01
Interroger une base de données PostgreSQL en Java

Récapitulatif

  • Statement envoie des commandes SQL à la base de données
  • ResultSet contient les résultats, bouclez avec next()
  • Méthodes getter : getInt(), getString(), getDate()
  • executeQuery() pour SELECT, executeUpdate() pour modifications
  • Gérez les erreurs avec SQLException

Récapitulatif

Interroger une base de données PostgreSQL en Java

Passons à la pratique !

Interroger une base de données PostgreSQL en Java

Preparing Video For Download...