如何通过 类 共享 SQL 连接对象?

How can I share SQL connection object through classes?

我目前正在使用 JavaFX SQL 构建一个程序。

我在主 window 中调用 DbConnect(),一切正常。 我现在遇到的问题是在其他 classes(另一个 window/scene)中获取此数据库连接。现在我在所有其他场景中调用数据库连接函数,这也会在以后引起问题,因为它总是打开一个新的数据库连接。所以我的问题是如何在我所有的 classes.

中共享数据库连接

只想在main中打开一次class然后继承给其他classes

这是我的数据库连接函数:

    public Connection DbConnect() {
    try {
        con = DriverManager.getConnection(dbPath, user, pass);
        statm = con.createStatement();
        SetupSystem();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return con;
}

从第一个开始window

//  Initilizing all the database connections
public void DbConnect() {
    con.DbConnect();
    disconnectMenuItem.setVisible(true);
    connectMenuItem.setVisible(false);

}

从第二个Window(不想在这里打开新连接)想继承第一个window

的连接
            public void initialize(URL location, ResourceBundle resources) {
        db.DbConnect();
}

提前致谢,

您可以使用 Singleton pattern 可以通过您的 类:

共享一个实例
public final class Singleton {

private static volatile Connection con = null;

private Singleton() {}

public static Singleton getInstance() {
    if (con== null) {
       try {
     con = DriverManager.getConnection(dbPath, user, pass);
     statm = con.createStatement();
    SetupSystem();
     } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
     }
     }

    return con;
 }

}

现在,您可以像这样从另一个 类 访问您的数据库连接:

 public class ClassOne {
   Singleton.getInstance();
  }

  public class ClassTwo {

   Singleton.getInstance();
  }