MySQL JDBC Statement 是Java程序中連接MySQL數據庫時使用的一種接口,它可以讓開發人員向MySQL數據庫發送SQL語句并獲取結果。Statement接口是JDBC API的一部分,用于執行靜態SQL語句并返回結果。它是一個用于執行SQL語句的對象,該語句可能會取決于用戶輸入。使用Statement接口時,如果SQL語句需要輸入用戶值,那么您需要使用參數化查詢或PreparedStatement來保護應用程序,這樣可以防止SQL注入攻擊。
// 導入java.sql.Statement類 import java.sql.*; public class MySQLJDBCStatementDemo { static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/emp"; // 數據庫的用戶名與密碼 static final String USER = "root"; static final String PASS = "password"; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try { // 注冊 JDBC 驅動器 Class.forName("com.mysql.jdbc.Driver"); // 打開一個連接 System.out.println("Connecting to database..."); conn = DriverManager.getConnection(DB_URL, USER, PASS); // 執行查詢 System.out.println("Creating statement..."); stmt = conn.createStatement(); String sql = "SELECT id, name, age FROM Employees"; ResultSet rs = stmt.executeQuery(sql); // 處理結果集 while(rs.next()){ // 通過索引檢索 int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); // 輸出數據 System.out.print("ID: " + id); System.out.print(", Name: " + name); System.out.print(", Age: " + age); System.out.println(); } // 清理環境 rs.close(); stmt.close(); conn.close(); } catch(SQLException se) { // 處理 JDBC 錯誤 se.printStackTrace(); } catch(Exception e) { // 處理 Class.forName 錯誤 e.printStackTrace(); } finally { // 關閉資源 try { if(stmt!=null) stmt.close(); } catch(SQLException se2) { } try { if(conn!=null) conn.close(); } catch(SQLException se) { se.printStackTrace(); } } System.out.println("Goodbye!"); } }
上述代碼演示了如何使用Statement接口從MySQL數據庫中檢索和輸出數據。您需要注意的一點是,程序中會手動關閉Statement和Connection資源,這是因為Java不會在程序退出時自動關閉連接和語句對象。