Добрый день!
В связи с отсутствием опыта, столкнулся со следующей проблемой: не знаю, как работать с данными из БД. Оставлять их во временной памяти, или освобождать и заново делать запрос к БД, когда возникнет необходимость в этих данных?
Пишу курсовую работу по БД. Использую Java, JDBC, PostgreSQL + JavaFX для графического интерфейса.
Существует сущность "Поставщик", которая имеет свой "Каталог" поставляемых товаров(связь 1:M).
На данный момент сделано так:
Когда программе надо вывести на экран список поставщиков, вызывается метод класса синглетон следующего вида:
public List<Supplier> getSupplierList() {
if (null == supplierList) {
supplierList = SupplierTransaction.loadAllSuppliers();
}
return supplierList;
}
После этого данные о поставщиках хранятся до конца работы программы.
Когда необходимо вывести на экран каталог поставщика, используется следующая функция класса Supplier("Поставщик"):
public List<Catalog> getCatalog() {
if (null == catalog) {
phoneList = SupplierTransaction.getSupplierCatalog(id);
}
return catalog;
}
Таким образом загрузка данных из базы данных происходит лишь единожды. С одной стороны это хорошо: при повторном обращении мы получаем данные быстрее, но с другой стороны, количество памяти, которую занимает программа с каждым разом растет.
Я привел лишь два примера, подобная реализация присутствует и в остальных частях программы.
Как поступить лучше? Каждый раз делать заново запросы? Оставить как есть? Или же как то скомбинировать эти две реализации?
Спасибо!