2015-06-11 175 views
-1

我正在嘗試爲MySQL建立一個連接,但我得到了類拋出異常。這是代碼。密碼,用戶名等已被更改,但這不是問題。主要的問題是類轉換異常,我得到當我嘗試做連接對象類拋出異常

Connection c = (Connection) DriverManager.getConnection(url,un,pw); 

CODE

import java.sql.DriverManager; 
import java.sql.SQLException; 


public class Connection { 
    public static void main(String agrs[]){ 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      String url = "jdbc:mysql://hostname/dbname"; 
      String un = "username"; 
      String pw = "password"; 
      Connection c = (Connection) DriverManager.getConnection(url,un,pw); 
     } catch (ClassNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (SQLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
} 
+0

您能否爲您正試圖連接的連接顯示導入? –

+0

我沒有進口。這是我寫的測試數據庫的完整版本。 – noobProgrammer

+1

將您的類重命名爲'Connection1'或其他名稱並導入'java.sql.Connection' – Abhi

回答

3
public class Connection 

的問題就在這裏。類歧義問題。重新命名您的班級,並修復您的導入以包括java.sql.Connection.

2

DriverManager.getConnection(url,un,pw);返回java.sql.Connection。 所以,你必須改變

java.sql.Connection c = DriverManager.getConnection(url,un,pw); 

返回值我不是你的Connection類的一個實例。

+0

這可以在不重命名類的情況下使用。給予好評。 –

0

DriverManager.getConnection()返回的連接是java.sql.Connection的一個實例,但請參閱您已定義一個單獨的Connection類,並認爲它是唯一的。原來,它已經是由java.sql.Connection定義的標準類。

如果您使用Connection進行導入,那麼在具有相同名稱的類之間會有衝突。重命名你的班級說MyConnection和import java.sql.Connection然後你的代碼會工作。

import java.sql.DriverManager; 
import java.sql.SQLException; 
import java.sql.Connection; 

public class MyConnection { 
    public static void main(String agrs[]){ 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      String url = "jdbc:mysql://hostname/dbname"; 
      String un = "username"; 
      String pw = "password"; 
      Connection c = (Connection) DriverManager.getConnection(url,un,pw); 
     } catch (ClassNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (SQLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
} 
+0

'java.sql.Exception'?那是什麼?這與它有什麼關係?那個'定義'是什麼? – EJP

+0

@EJP:Typo類可以描述它。 ;) –

+0

Typo schmypo。沒有這種東西,因此它不能「定義」任何東西。 – EJP