首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

JDBC 連接資料庫完整七步驟與最佳實踐代碼範例

     編輯:Java 相關知識

JDBC 核心七步驟

  1. 載入驅動:Class.forName("com.mysql.jdbc.Driver") 註冊驅動到 DriverManager
  2. 連接 URL:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk
  3. 建立連接:DriverManager.getConnection(url, username, password)
  4. 建立 Statement:三類型對應不同場景
    • Statement:靜態 SQL
    • PreparedStatement:參數化 SQL(防注入、效能優)
    • CallableStatement:預存程序
  5. 執行 SQL:
    • executeQuery:查詢 → ResultSet
    • executeUpdate:增刪改/DDL → 影響行數
    • execute:複雜多結果集
  6. 處理結果:ResultSet 游標遍歷,getString(int columnIndex) 比 getString(String columnName) 更高效
  7. 關閉資源:逆序關閉 ResultSet → Statement → Connection,各自獨立 try-catch

完整代碼範例

public class JDBCTest {
    public static void main(String[] args) {
        String driver = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3308/spring";
        String user = "root", pass = "root";
        String sql = "select * from users";

        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;

        try {
            Class.forName(driver);
            conn = DriverManager.getConnection(url, user, pass);
            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();

            while (rs.next()) {
                System.out.println("id: " + rs.getInt(1) + " name: " + rs.getString(2) + " pwd: " + rs.getString(3));
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            closeQuietly(rs);
            closeQuietly(ps);
            closeQuietly(conn);
        }
    }

    static void closeQuietly(AutoCloseable c) {
        if (c != null) try { c.close(); } catch (Exception ignored) {}
    }
}

關鍵最佳實踐

  • 優先使用 PreparedStatement 防 SQL 注入、利用預編譯提升效能
  • 資源關閉採用工具方法或 try-with-resources (Java 7+) 簡化代碼
  • 生產環境必須使用連接池 (HikariCP/Druid) 而非直接建立連接
  • 結果集遍歷使用列索引而非列名提升效能
  • 異常處理保留堆疊追蹤,避免吞沒錯誤
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved