Search code examples
javanetbeansmodelconnectionjavadb

How should I model my system - database implication


I have a main class, a login class and a gui class.

Within my main I am creating a database connection using the Singleton pattern - only one instance of this connection.

I want to access the database connection from login, to verify users upon logging into the system.

My connection method within 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;
}

Now, I want to create a login method where I need to use the connection conn. The method is static and I cannot use conn.

I'm sure this is wrong but I've also tried making a public method which returns the connection conn and then tried calling that method from Main.

conn = Main.returnConnection();

What should I do in this situation? Pretty confused at how I'm supposed to model this.


Solution

  • I figured out the purpose of the Singleton pattern is to create one instance of something and allow it to be seen by everyone.

    So I made it public static void instead and can now access the connection, without making a new one each time.

    Correct me if I am wrong but this works fine.