Ecco un esempio di classe per la gestione della Connection. Nota l'ho scritto al volo, non l'ho provato (non ho un DBMS MySQL sotto mano ora).
Questo comunque è solo uno dei possibili "design".
// import ....
public class MySqlDB {
private static final String DRIVER_CLASS = "com.mysql.jdbc.Driver";
private static final MySqlDB INSTANCE = new MySqlDB();
static {
try {
Class.forName(DRIVER_CLASS);
} catch (ClassNotFoundException e) {
// eventuale logging dell'errore se si vuole
}
}
private String url;
private String username;
private String password;
private Connection connection;
private MySqlDB() {}
public static MySqlDB getInstance() {
return INSTANCE;
}
public synchronized void setConnectionData(String url, String username, String password) {
this.url = url;
this.username = username;
this.password = password;
}
public synchronized Connection getConnection() throws SQLException {
if (connection == null) {
connection = DriverManager.getConnection(url, username, password);
}
return connection;
}
}
Nel main() della tua applicazione farai "una-tantum":
MySqlDB.getInstance().setConnectionData("jdbc:mysql:// .........", "....", "....");
Poi altrove, ovunque hai bisogno di quella STESSA connection:
Connection conn = MySqlDB.getInstance().getConnection();