Comunque ecco il codice completo della classe:
DataSourceSingleton
codice:
package it.f2.allibo.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.MissingResourceException;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
public class DataSourceSingleton {
private static DataSourceSingleton instance;
// ----------------------------------------------- //
private static final String CONFIG = "database";
private static final String DRIVER = "dbDriver";
private static final String URL = "dbUrl";
private static final String USER = "dbUser";
private static final String PASSWORD = "dbPassword";
// ----------------------------------------------- //
private static String driver;
private static String url;
private static String user;
private static String password;
private DataSourceSingleton() {
init();
}
private static void init() {
System.out.println("Carico le properties");
try {
PropertyResourceBundle prb = (PropertyResourceBundle) ResourceBundle.getBundle(CONFIG);
setDriver(prb.getString(DRIVER));
setUrl(prb.getString(URL));
setUser(prb.getString(USER));
setPassword(prb.getString(PASSWORD));
} catch (MissingResourceException mre) {
System.out.println("Errore al caricare le properties");
System.out.println(mre.toString());
throw mre;
}
System.out.println("Properties caricate");
}
public static DataSourceSingleton getInstance() {
System.out.println("Ottengo un'istanza di DataSourceSingleton");
if (instance == null) {
System.out.println("Creo nuova istanza");
instance = new DataSourceSingleton();
} else System.out.println("Istanza esistente");
return instance;
}
public synchronized Connection getConnection() {
Connection con = null;
try {
Class.forName(getDriver()).newInstance();
con = DriverManager.getConnection(getUrl(), getUser(), getPassword());
} catch (SQLException sqle) {
System.out.println("Errore bloccante: SQLException");
} catch (Exception e) {
System.out.println("Errore bloccante: Exception");
System.out.println(e.toString());
}
return con;
}
public static String getDriver() {
return driver;
}
public static void setDriver(String driver) {
DataSourceSingleton.driver = driver;
}
public static String getUrl() {
return url;
}
public static void setUrl(String url) {
DataSourceSingleton.url = url;
}
public static String getUser() {
return user;
}
public static void setUser(String user) {
DataSourceSingleton.user = user;
}
public static String getPassword() {
return password;
}
public static void setPassword(String password) {
DataSourceSingleton.password = password;
}
}