Java,将数据库连接传递到不同的 类。

Java, passing database connection into different classes.

我不明白 DatabaseAccess class 的用途。我很好奇对象名称 "conDA" 是如何包含数据库连接的,即使没有使用我创建的 getConnection() 方法。例子"con2 = new Connection2(conDA);"那个"conDA"对象名怎么理解为数据库的连接呢? 以下是代码:

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;
    }
}

第 2 Class

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);
    }
}

第 3 Class

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!!");
    }
}

数据库访问Class

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;
    }
}

how is that "conDA" object name can be understood as a connection of database?

因为 class ConnectionDA 有方法 getConnection 实现 returns 连接类型的对象。

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

这里是 getConnection() 方法的实现。

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

I'm curious about how did the object name "conDA" contains the database connection even without using the getConnection() method I created

这是因为,class 在构造函数

上接收到一个连接
public class ConnectionDA 
{
    Connection connection;

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

}