Я создаю приложение javafx, но у меня возник вопрос о том, как работать с моей базой данных. Данные, содержащиеся в моей базе данных, поступают с созданным мной объектом DAO. После того, как они добавлены в соответствующие объекты модели, ObservableList et c ... Некоторые данные, содержащиеся в моих моделях, обновляются редко, но другие обновляются очень часто. Когда я говорю «обновлено», я говорю об обновлениях моделей, а не базы данных.
Поэтому я не знаю, какие решения между этими двумя лучше всего:
- Я загружаю все модели приложения нужны при запуске, сохраните их где-нибудь (класс с полем stati c?). И когда одно из этих значений обновляется, я напрямую сохраняю изменение в базе данных.
- Я загружаю все модели приложения, необходимые при запуске, сохраняю их где-нибудь (класс с полем stati c?). Но сохраняйте модификацию только тогда, когда пользователи покидают приложение. Он показывает экран загрузки, и приложение сохраняет все изменения в базе данных.
Я бы предпочел второй, потому что первый создает проблемы с производительностью из-за многочисленных запросов sql.
Если бы мне пришлось создать класс java со всеми моими моделями, я бы сделал такой класс:
public static ObservableValue<Boolean> value1;
public static ObservableValue<String> value2;
public static ObservableValue<Boolean> value3;
public static ObservableList value4;
etc ...
На самом деле я не знаю, как хранить свои модели в приложение, и получаю их, когда мне нужно.
Следует ли мне использовать внедрение зависимостей для внедрения моих DAO в представления, которым они нужны? инъекция с помощью guice.
Большое спасибо.
РЕДАКТИРОВАТЬ: Моя система дао такая: у меня есть абстрактный класс под названием DAO:
public abstract class DAO<T> {
protected Connection connection = null;
public DAO(Connection connection){
this.connection = connection;
}
public abstract Service<Boolean> create(T obj);
public abstract Service<Boolean> delete(List<Integer> obj);
public abstract Service<Boolean> modify(ObservableList<T> obj);
public abstract Service<T> find(int id);
public abstract Service<ObservableList<T>> getAll();
}
и некоторый дочерний элемент расширение этого класса. И фабричный класс, который создал для меня объект DAO:
/**
* Factory générant des object {Dao<T>} permetant d'intéragir avec la BDD
*/
public class DAOFactory {
private static final Connection conn = new TradingDatabase().getInstance();
/**
* Retourne un objet DAO<Risk> intéragissant avec la BDD
* @return DAO
*/
public static DAO<Risk> getRiskDAO(){
return new RiskDAO(conn);
}
}