2015-03-02 26 views
0

我不明白的目的DatabaseAccess class。我很好奇,對象名稱「conDA」如何包含數據庫連接,即使不使用我創建的getConnection()方法也不使用。示例「con2 = new Connection2(conDA);」那「conDA」對象名稱是如何被理解爲數據庫的連接? 這裏是代碼:Java,將數據庫連接傳遞到不同的類。

import java.sql.*; 
public class Connection1 
{ 
    static Connection connection; 
    static ConnectionDA conDA; 
    static Connection2 con2; 

    public static void main(String args[]) throws ClassNotFoundException, SQLException 
    { 
     conDA = new ConnectionDA(getConnection()); 
     System.out.println("Con1 Connected!!"); 
     con2 = new Connection2(conDA); 
    } 

    public static Connection getConnection() throws ClassNotFoundException, SQLException 
    { 
     Class.forName("com.ibm.db2.jcc.DB2Driver"); 
     connection = DriverManager.getConnection("jdbc:db2://localhost:50000/Sample", "ZeroCool","siliconvalley"); 

     return connection; 
    } 
} 

二等

import java.sql.*; 
public class Connection2 
{ 
    ConnectionDA conDA; 
    Connection3 con3; 

    public Connection2(ConnectionDA conDA) throws ClassNotFoundException 
    { 
     this.conDA = new ConnectionDA(conDA.getConnection()); 
     this.conDA = conDA; 
     System.out.println("Con2 Connected!!"); 
     con3 = new Connection3(conDA); 
    } 
} 

三等獎

import java.sql.*; 
public class Connection3 
{ 
    ConnectionDA conDA; 

    public Connection3(ConnectionDA conDA) throws ClassNotFoundException 
    { 
     this.conDA = new ConnectionDA(conDA.getConnection()); 
     this.conDA = conDA; 
     System.out.println("Con3 Connected!!"); 
    } 
} 

數據庫訪問類

import java.sql.*; 
public class ConnectionDA 
{ 
    Connection connection; 

    public ConnectionDA(Connection connection) throws ClassNotFoundException 
    { 
     this.connection = connection; 
     System.out.println("ConDA Established!!!"); 
    } 

    public Connection getConnection() 
    { 
     return connection; 
    } 
} 

回答

1

那個「conDA」對象名稱是如何被理解爲連接數據庫的 ?

因爲ConnectionDA類具有方法getConnection實現,它返回類型連接的對象。

public Connection3(ConnectionDA conDA) throws ClassNotFoundException 
{ 
    this.conDA = new ConnectionDA(conDA.getConnection()); 
} 

而且這裏執行getConnection()方法。

public class ConnectionDA 
{ 
    public Connection getConnection() 
    { 
     return connection; 
    } 
} 

我很好奇怎麼對象名稱「康達」包含 數據庫連接,即使沒有使用我 創建

這是getConnection()方法,因爲該類在構造函數上接收連接

public class ConnectionDA 
{ 
    Connection connection; 

    public ConnectionDA(Connection connection) throws ClassNotFoundException 
    { 
     this.connection = connection; 
    } 

} 
+0

所以,我只需要調用ConnectionDA建立到其他類的連接?如果是這種情況,每次初始化conDA對象名稱時,getConnection()方法的用法是什麼? – ZeroCool 2015-03-02 14:35:13

+0

你有方法getConection()獲取連接,在你需要它的情況下出於某種原因。 – 2015-03-02 14:37:39