-
-
Save jasoet/3843797 to your computer and use it in GitHub Desktop.
/* | |
* To change this template, choose Tools | Templates | |
* and open the template in the editor. | |
*/ | |
package org.secondstack.db; | |
import java.sql.Connection; | |
import java.sql.DriverManager; | |
import java.sql.SQLException; | |
/** | |
* | |
* @author Deny Prasetyo | |
*/ | |
public class DatabaseConnection { | |
private static DatabaseConnection instance; | |
private Connection connection; | |
private String url = "jdbc:postgresql://localhost:5432/jdbc"; | |
private String username = "root"; | |
private String password = "localhost"; | |
private DatabaseConnection() throws SQLException { | |
try { | |
Class.forName("org.postgresql.Driver"); | |
this.connection = DriverManager.getConnection(url, username, password); | |
} catch (ClassNotFoundException ex) { | |
System.out.println("Database Connection Creation Failed : " + ex.getMessage()); | |
} | |
} | |
public Connection getConnection() { | |
return connection; | |
} | |
public static DatabaseConnection getInstance() throws SQLException { | |
if (instance == null) { | |
instance = new DatabaseConnection(); | |
} else if (instance.getConnection().isClosed()) { | |
instance = new DatabaseConnection(); | |
} | |
return instance; | |
} | |
} |
Using the Class.forName, the postgresql driver will not appear in the project structure.
And how it supposed to work once connection is closed? I don't see how to reopen this connection without restarting the app.
Great!!!
thanks!
But you need a private constructor.
private DatabaseConnection() { }
Calling getInstance will create a new connection if the existing connection is closed.
is there any way not to hardcode URL, username, and password?
Thanks , It really helped me.
you can create an other method public DatabaseConnection createCon(String url, uName, pswrd){}
is there any way not to hardcode URL, username, and password?
So now which method should I call to get the data base connection ?
DBConnection db = DBConnection.getInstance();
Connection conn = db.getConnection();
Thanks, it helped me.
But I still have to load the driver through the Maven dependencies.