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

时间:2013-02-04 21:06:15

标签: java netbeans model connection javadb

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

在我的主要内容中,我使用Singleton模式创建数据库连接 - 此连接只有一个实例。

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

我在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的公共方法,然后尝试从Main调用该方法。

conn = Main.returnConnection();

在这种情况下我该怎么办?很困惑我应该如何模仿这个。

2 个答案:

答案 0 :(得分:1)

连接池相比,您的方法非常原始。连接池是指包含可在以后请求中使用的缓存,可重用连接的池。正如你所说,为每个用户打开一个连接是一个昂贵的过程,也为每个用户提供静态连接时发生冲突。连接池是在这种情况下应该使用的标准。

connection = connectionPool.getConnection();

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

最受欢迎的图书馆是:

答案 1 :(得分:0)

我发现Singleton模式的目的是创建一个事物的实例并允许每个人看到它。

所以我把它变为public static void,现在可以访问连接,而不是每次都创建一个新连接。

如果我错了,请纠正我,但这样可以。