Jestem poczatkujacym w Javie bo trzeba napisac program na zaliczenie w Java EE.
Pisze mechanizm dostepu do bazy danych typu DAO wykorzystujac wzorzec Fabryka abstrakcyjna.
Przykład pobrania listy klientow:
DAOFactory daoFactory = DAOFactory.getDAOFactory(DAOFactory.MYSQL);
IClientDAO clientDAO = daoFactory.getClientDAO();
ArrayList<Client> clients = clientDAO.getList();
W 1 linijce pobieram konkretna fabryke dla konkretnej bazy danych.
W 2 pobieram obiekt klasy, ktora jest odpowiedzialny za tabele klient w bazie danych(wstawianie, pobieranie itp)
W 3 za pomoca obiektu dao pobieram liste klientow. Client jest to encja dla Klienta.
W jaki sposob najlepiej filtrowac oraz laczyc tabele w bazie danych? Mozna to zrobic po stronie aplikacji
ale wydaje mi się bez sensu, lepiej moim zdaniem wykonac odpowiednie zapytania, ktore zwroca juz gotowe dane.
I tu przychodza mi takie pomysly jak po prostu stworzyc w obiektach DAO Zamowienia (np laczac Klienta z Zamowieniem) dodatkowe metody:
whereClientIdEqual(int id); itd dla reszty pol.
Nastepny pomysl jaki przychodzi mi do glowy to stworzenie po stronie bazy perspektyw, które zawieraja juz polaczone tabele
i pozniej stworzyl bym dodatkowe encje do tych tabel po stronie aplikacji.
Nastepny pomysl to stworzenie oddzielnych klas, ktore zajmowaly by sie wszystkim po stronie aplikacji np:
ArrayList<Towar> towary = towarDAO.getList();
FiltrTowary filtrTowary = new FiltrTowary(towary);
towary = filtrTowary.getKategoriaEqual("Komputery");
towary = filtrTowary.getCenaLessThan(1000);
W jaki sposob najlepiej to zrobic? Moze sa jakies lepsze rozwiazania?