2015-03-02 117 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