2014-12-26 167 views
-4

爲何輸出打印碳粉JdbcOdbcConnection但返回類型是一個連接對象爲什麼輸出打印JdbcOdbcConnection

import java.sql.*; 
import sun.jdbc.odbc.*; 

class JdbcEx3 
{ 

     public static void main(String args[]) throws Exception 
     { 
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
      Connection con = DriverManager.getConnection("jdbc:odbc:mysql1","root","root123"); 

      System.out.println(con); 
     } 
} 
+3

因爲'getConnection'不會返回'JdbcOdbcConnection'。檢查API文檔。 –

+0

然後說它返回一個類對象是錯誤的 –

回答

0

既然已經聲明的變量的類型JdbcOdbcConnection和同樣是不能從方法的DriverManager返回所以有必要對對象進行類型轉換。

0

DriverManager.getConnection() methdo返回你連接Object而不是JdbcOdbcConnection,因此你需要在這裏進行類型轉換,如果你確定,你的司機要返回JdbcOdbcConnection的實例,否則你會得到ClassCastException異常。

0

DriverManager.getConnection返回Connection接口,所以我不能直接將它分配給JdbcOdbcConnection實例。因此。您必須投射,或者最好只使用界面:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
Connection con = DriverManager.getConnection("jdbc:odbc:mysql1","root","root123"); 
System.out.println(con);