MyEclipse 中 JDBC 連接代碼報錯,需要在 DriverManager.getConnection() 前加 (Connection) 強制轉型。
// 錯誤寫法
Connection conn = DriverManager.getConnection(url, user, pass);
// 正確寫法
Connection conn = (Connection) DriverManager.getConnection(url, user, pass);
DriverManager.getConnection() 返回類型是 java.sql.Connection 接口,但編譯器在某些環境下無法確認具體實現類是否兼容當前項目引用的 JDBC 驅動版本,導致類型檢查失敗。
就像「新出生的小狗少了一條腿」,雖然它本質上是狗,但不符合「四條腿」的接口定義,必須通過強制轉型告訴編譯器:「按 Connection 接口標準對待它」。
// 方案一:使用 DataSource(推薦)
DataSource ds = new MysqlDataSource();
ds.setURL(url);
ds.setUser(user);
ds.setPassword(pass);
Connection conn = ds.getConnection(); // 無需轉型
// 方案二:確保引用正確的 mysql-connector-java 版本
// pom.xml 中指定版本與數據庫匹配
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version> <!-- 匹配 MySQL 8.0 -->
</dependency>