gpt4 book ai didi

java - 我应该如何为我的系统建模 - 数据库含义

转载 作者:行者123 更新时间:2023-12-01 14:52:32 25 4
gpt4 key购买 nike

我有一个主类、一个登录类和一个 gui 类。

在我的 main 中,我使用单例模式创建一个数据库连接 - 此连接只有一个实例。

我想通过登录访问数据库连接,以在登录系统时验证用户。

我在main中的连接方法:

/**
* Use the Singleton pattern to create one Connection
*/
private static Connection getConnection() {
if (conn != null) {
return conn;
}
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage() + " load driver error");
System.exit(0);
}
try {
//conn = DriverManager.getConnection(host);
conn = DriverManager.getConnection(host + "create=true", dbUsername, dbPassword);
} catch (SQLException e) {
displayErr("Get connection error: ", e);
System.exit(0);
}
return conn;
}

现在,我想创建一个需要使用连接 conn 的登录方法。该方法是静态的,我无法使用 conn。

我确信这是错误的,但我也尝试过创建一个返回连接 conn 的公共(public)方法,然后尝试从 Main 调用该方法。

conn = Main.returnConnection();

遇到这种情况我该怎么办?我对如何建模感到非常困惑。

最佳答案

与连接池相比,您的方法是如此原始。连接池意味着一个包含缓存的、可重用的连接的池,这些连接可以在将来的请求中使用。正如您所说,为每个用户打开连接是一个昂贵的过程,同时为每个用户提供静态连接也会发生冲突。连接池是在这种情况下应该使用的标准。

connection = connectionPool.getConnection();

上层代码表示从池中获取一个连接,如果所有连接都已分配,机制会自动创建一个新连接。

最受欢迎的库是:

关于java - 我应该如何为我的系统建模 - 数据库含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14695639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com