Задать вопрос

Java: как лучше спроектировать класс работы с базой данных MySQL (JDBC)?

Требуется создать класс DataBankManager, с помощью которого другие классы (назовём их Process1, Process2) будут сохранять данные в БД / читать данные оттуда. Причем эти другие процессы будут работать параллельно (в смысле многопоточности). Поэтому вопрос: как лучше реализовать DataBankManager? Пока что у меня родилось несколько вариантов:
  1. В конструкторе класса DataBankManager мы подключаемся к базе данных. Это подключение (java.sql.Connection) живёт, пока жив класс DataBankManager. Классам Process1, Process2 мы передаем ссылку на наш объект, и они сохраняют/читают данные с помощью методов класса
    public void saveSomeData(Data data) {
        PreparedStatement pstmt = connection.prepareStatement("INSERT ...");
        pstmt.executeBatch();
        pstmt.close();
    }

  2. Тоже самое, но только Connection создается в начале метода saveSomeData и закрывается в конце его выполнения
  3. Соединение с базой данных открывается и закрывается статичными методами класса DataBankManager, сохранение данных так же статичными методами. Тогда нет нужды вообще создавать объект класса DataBankManager
  4. Или, может быть нужно использовать паттерн проектирования singleton?

Как будет правильнее? Как обычно это реализуют?
  • Вопрос задан
  • 4733 просмотра
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@j_wayne
Conenction Pool
habrahabr.ru/post/101342
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы