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

时间:2015-03-02 13:35:04

标签: java database db2 database-connection

我不了解 DatabaseAccess 类的目的。我很好奇对象名称" 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;
    }
}

第二课

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课

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 个答案:

答案 0 :(得分:1)

  

如何将“conDA”对象名称理解为连接   数据库?

因为ConnectionDA类具有getConnection实现方法,它返回类型为connection的对象。

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

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

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

我很好奇对象名称“conDA”是如何包含的   数据库连接即使不使用getConnection()方法我   创建

这是因为,类在构造函数

上接收连接
public class ConnectionDA 
{
    Connection connection;

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

}