Singleton pattern is used to ensure that, only one instance of a class can be created.
Check complete details and explanations about the Singleton pattern in the article: Singleton Design Pattern
This article demonstrates Singleton pattern implementations in Java. Check the following examples.
Example #1: Database Connection
Let’s take the example of creating a class for database connection. Take a look at the class diagram.

Singleton Class
// DbConnectionSingleton.java
package com.bigboxcode.designpattern.singleton.dbconnection;
public final class DbConnectionSingleton {
private static DbConnectionSingleton dbInstance;
private String url;
private String port;
private String username;
private String password;
private DbConnectionSingleton(String url, String port, String username, String password) {
this.url = url;
this.port = port;
this.username = username;
this.password = password;
}
public static DbConnectionSingleton getInstance(String url, String port, String username, String password) {
if (dbInstance == null) {
dbInstance = new DbConnectionSingleton(url, port, username, password);
}
return dbInstance;
}
public void printConnectionDetails() {
System.out.println("URL:" + url);
System.out.println("Port:" + port);
System.out.println("User name:" + username);
System.out.println("Password:" + password);
}
public void executeQuery(String query) {
System.out.println("Executing query: " + query);
}
}
Demo
// Demo.java
package com.bigboxcode.designpattern.singleton.dbconnection;
public class Demo {
private static final String DB_URL = "localhost";
private static final String DB_PORT = "5432";
private static final String DB_USERNAME = "postgres";
private static final String DB_PASSWORD = "secret*pass";
private static final String DB_URL2 = "192.168.55.55";
private static final String DB_PORT2 = "1234";
private static final String DB_USERNAME2 = "postgres2";
private static final String DB_PASSWORD2 = "secret*pass2";
public static void main(String[] args) {
DbConnectionSingleton dbConnection = DbConnectionSingleton.getInstance(DB_URL, DB_PORT, DB_USERNAME, DB_PASSWORD);
System.out.println("First Connection Details:");
dbConnection.printConnectionDetails();
DbConnectionSingleton secondDbConnection = DbConnectionSingleton.getInstance(DB_URL2, DB_PORT2, DB_USERNAME2, DB_PASSWORD2);
System.out.println("\n\nSecond Connection Details:");
secondDbConnection.printConnectionDetails();
}
}
Output
First Connection Details:
URL:localhost
Port:5432
User name:postgres
Password:secret*pass
Second Connection Details:
URL:localhost
Port:5432
User name:postgres
Password:secret*pass
Source Code
Use the following link to get the source code:
Example | Source Code Link |
---|---|
Example #1: Database Connection | ![]() |