У меня есть два класса для работы с mysql (прога десктопная, поэтому без ORM'ом). Была мысль, сделать еще один — синглетон, который будет сначала подключаться к БД при первом вызове, а потом уже эти два класса будут его использовать. Но подключение к БД хочется делать снаружи, а потом уже в него передавать. Ну и в общем, вместо синглетона я сделал вот так, и мне интересно, насколько это плохо и почему.
public class Database {
private static Boolean ready = false;
private static Connection con = null;
public Database() {
}
public static void init(Connection connection) throws Exception {
if (ready == false) {
if (con != null) {
con = connection;
ready = true;
// тут будут создаваться таблицы, если их нет
} else {
throw new Exception("connection == null");
}
} else {
throw new Exception("ready == true");
}
}
public static void destroy() {
con = null;
ready = false;
// тут будет закрываться соединение
// и вообще всё, что можно закрыть
}
// все остальные (тоже static) методы с запросами,
// выбрасывающие эксцепшны, если ready == false
}
Я нормален? Посоветуйте что-нибудь.