35 lines
944 B
Java
35 lines
944 B
Java
package singleton;
|
|
|
|
/**
|
|
* Thread-safe Singleton using double-checked locking.
|
|
*/
|
|
public class DatabaseConnection {
|
|
private static volatile DatabaseConnection instance;
|
|
private final String url;
|
|
private int queryCount = 0;
|
|
|
|
private DatabaseConnection() {
|
|
this.url = "jdbc:mysql://localhost:3306/myapp";
|
|
System.out.println("Establishing connection to " + url);
|
|
}
|
|
|
|
public static DatabaseConnection getInstance() {
|
|
if (instance == null) {
|
|
synchronized (DatabaseConnection.class) {
|
|
if (instance == null) {
|
|
instance = new DatabaseConnection();
|
|
}
|
|
}
|
|
}
|
|
return instance;
|
|
}
|
|
|
|
public String executeQuery(String sql) {
|
|
queryCount++;
|
|
return "Result #" + queryCount + " for: " + sql;
|
|
}
|
|
|
|
public int getQueryCount() { return queryCount; }
|
|
public String getUrl() { return url; }
|
|
}
|