Skip to content

Instantly share code, notes, and snippets.

Created October 6, 2012 04:16
  • Star 38 You must be signed in to star a gist
  • Fork 8 You must be signed in to fork a gist
Star You must be signed in to star a gist
What would you like to do?
Database Connection Singleton
* 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 {
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;
Copy link

jasoet commented Sep 22, 2021

Calling getInstance will create a new connection if the existing connection is closed.

Copy link

vinvin04 commented May 8, 2022

is there any way not to hardcode URL, username, and password?

Copy link

Thanks , It really helped me.

Copy link

you can create an other method public DatabaseConnection createCon(String url, uName, pswrd){}

Copy link

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();

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment