錯誤堆疊
Exception in thread "main" java.lang.NullPointerException
at FirstExample.main(FirstExample.java:23)
常見原因
- 驅動類別未正確載入:確認
Class.forName("com.mysql.jdbc.Driver") 無拼寫錯誤,且 JAR 已加入類路徑。
- Connection 物件為 null:
DriverManager.getConnection 失敗時會拋出 SQLException,若被捕獲並忽略,後續 conn.createStatement() 即會觸發 NPE。
- 資料庫字元編碼不匹配:MySQL 伺服器與連線字串編碼不一致(如未指定
characterEncoding=utf8),可能導致驅動內部解析異常。
建議排查步驟
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/EMP?characterEncoding=utf8", "root", "2573718");
// 後續操作...
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace(); // 必須印出堆疊,定位真正原因
}