如何通过 类 共享 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();
}
我目前正在使用 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();
}