首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java JDBC 讀取數據庫表數據:核心類、對象、方法與語句全景圖

     編輯:程式設計疑難解答

標準流程與關鍵 API

步驟核心類/接口關鍵方法說明
1. 加載驅動ClassforName("com.mysql.cj.jdbc.Driver")JDBC 4.0+ 可省略(SPI 自動發現)
2. 獲取連接DriverManagergetConnection(url, user, pwd)返回 Connection,建議使用連接池
3. 創建語句ConnectioncreateStatement() / prepareStatement(sql)返回 Statement / PreparedStatement
4. 執行查詢Statement / PreparedStatementexecuteQuery(sql)返回 ResultSet(僅 SELECT)
5. 遍歷結果集ResultSetnext(), getString(col), getInt(col)...游標逐行讀取,列索引從 1 開始
6. 釋放資源ResultSet, Statement, Connectionclose()逆序關閉,建議 try-with-resources

完整代碼範本

String sql = "SELECT id, name, age FROM user WHERE status = ?";
try (Connection conn = dataSource.getConnection();
     PreparedStatement ps = conn.prepareStatement(sql)) {
    ps.setInt(1, 1);
    try (ResultSet rs = ps.executeQuery()) {
        while (rs.next()) {
            User u = new User();
            u.setId(rs.getLong("id"));
            u.setName(rs.getString("name"));
            u.setAge(rs.getInt("age"));
            list.add(u);
        }
    }
}

常見誤區

  • executeUpdate 用於 INSERT/UPDATE/DELETE,**不適用於 SELECT**(返回影響行數,非 ResultSet)。
  • 未使用 PreparedStatement 拼接 SQL 導致注入風險與性能損耗。
  • 忘記關閉 ResultSet 導致游標洩漏,耗盡數據庫連接。

進階:連接池

生產環境**必須**使用 HikariCP / Druid / DBCP2 管理連接生命周期,配置 maximumPoolSize、idleTimeout、maxLifetime 等參數,避免頻繁建連開銷。

掌握 JDBC 七步曲,是 Java 後端操作關係型數據庫的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved