Thực thi truy vấn SQL cơ bản

Truy vấn cơ sở dữ liệu PostgreSQL trong Java

Miller Trujillo

Staff Software Engineer

Statements trong JDBC

  • Dùng executeQuery() cho câu lệnh SELECT
  • Dùng executeUpdate() cho INSERT, UPDATE, DELETE

$$

Statement như một sứ giả

Truy vấn cơ sở dữ liệu PostgreSQL trong Java

Tạo một Statement

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)) {
Truy vấn cơ sở dữ liệu PostgreSQL trong Java

Đọc kết quả với 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)
...
Truy vấn cơ sở dữ liệu PostgreSQL trong Java

Xử lý ngoại lệ

try {
    Statement stmt = conn.createStatement();

stmt.executeQuery("SELECT * FROM unknown_table");
} catch (SQLException e) {
System.err.println("Error: " + e.getMessage()); System.err.println("SQLState: " + e.getSQLState()); }
Error: ERROR: relation "unknown_table" does not exist
  Position: 15
SQLState: 42P01
Truy vấn cơ sở dữ liệu PostgreSQL trong Java

Tổng kết

  • Statement gửi lệnh SQL tới cơ sở dữ liệu
  • ResultSet giữ kết quả truy vấn, lặp với next()
  • Phương thức getter: getInt(), getString(), getDate()
  • executeQuery() cho SELECT, executeUpdate() cho thao tác sửa đổi
  • Xử lý lỗi với SQLException

Tổng kết

Truy vấn cơ sở dữ liệu PostgreSQL trong Java

Cùng luyện tập nào!

Truy vấn cơ sở dữ liệu PostgreSQL trong Java

Preparing Video For Download...