执行基础 SQL 查询

在 Java 中查询 PostgreSQL 数据库

Miller Trujillo

Staff Software Engineer

JDBC 中的 Statement

  • 对 SELECT 使用 executeQuery()
  • 对 INSERT、UPDATE、DELETE 使用 executeUpdate()

$$

把 Statement 当作信使

在 Java 中查询 PostgreSQL 数据库

创建 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)) {
在 Java 中查询 PostgreSQL 数据库

用 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)
...
在 Java 中查询 PostgreSQL 数据库

处理异常

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
在 Java 中查询 PostgreSQL 数据库

小结

  • Statement 向数据库发送 SQL 命令
  • ResultSet 保存结果,用 next() 循环
  • Getter 方法:getInt()getString()getDate()
  • 查询用 executeQuery(),修改用 executeUpdate()
  • SQLException 处理错误

回顾

在 Java 中查询 PostgreSQL 数据库

让我们来练习!

在 Java 中查询 PostgreSQL 数据库

Preparing Video For Download...