![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 6.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Kazda tabela ma odpowiadający jej obiekt DAO odpowiedzialny za komunikację. W tym obiekcie tworzę nowe połączenie z bazą.
Ale mam problem, stworzyłem formularz, z którego dane chcialbym zapisac w 2 tabelach. Muszę więc przerobić obiekty DAO, bo przecież bez sensu żeby na potrzeby komunikacji z jedną tabelą każdy obiekt DAO tworzył nowe połączenie. Wymyśliłem więc sprytnie (lub też nie-sprytnie), żeby każdy obiekt DAO dziedziczył po jakimś podstawowym obiekcie, który łączyłby się z bazą danych. W momencie tworzenia daoA miałbym już połączenie z bazą, tylko teraz jak to technicznie zrealizować tworząc obiekt daoB? Moja propozycja:
wykonałem taki test:
gdzie funkcja go pobiera dane odpowiednio z tabela1 lub tabela2 i wyświetla ich zawartość. wynikiem jest: Kod Resource id #3 Array ( [numer] => 1 [nazwa] => val1 ) Resource id #4 Array ( [numer] => 2 [nazwa] => val2 ) Czy w tym przypadku stworzyłem 2 połączenia? czy mogę stworzyć jedno połączenie na początku i z tego połączenia korzystać na stronie? Chciałem to po prostu zrobić dobrze i elegancko. Czy tak jest ok? Ten post edytował slwy 22.01.2009, 00:19:16 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 266 Pomógł: 20 Dołączył: 15.11.2006 Skąd: Koszalin Ostrzeżenie: (0%) ![]() ![]() |
Zapoznaj się ze wzorcem singleton. Nadje się tutaj doskonale.
-------------------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 6.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
popraw mnie, jeśli źle do tego podchodzę: w konstruktorze dam kod odpwiadający za połączenie z bazą danych, następnie będę dziedziczył po tym obiekcie, tak? Czy raczej ten obiekt będzie elementem każdej klasy - daoA, daoB etc. po chwili zastanowienia - czy daoBase (singleton) może być składnikiem klas daoA i daoB (dodawany przez referencję w konstruktorze daoA i daoB?) a tak w ogóle - czy to rozwiązanie którego teraz używam (2 obiekty każdy ma swoje połączenie) to bardzo złe i nieeleganckie rozwiązanie? Ten post edytował slwy 22.01.2009, 15:35:40 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat czy to rozwiązanie którego teraz używam (2 obiekty każdy ma swoje połączenie) to bardzo złe i nieeleganckie rozwiązanie? Mało efektywne, gdyż ISP wprowadza zazwyczaj limity jednoczesnych połączeń per konto. Cytat w konstruktorze dam kod odpwiadający za połączenie z bazą danych, następnie będę dziedziczył po tym obiekcie, tak? Czy raczej ten obiekt będzie elementem każdej klasy - daoA, daoB etc. Nie. Każdy element DAO będzie się odwoływał do zasobu połączenia zapisanego w tej klasie. Jeśli będzie dziedziczył, to będzie trochę bez sensu, gdyż w dalszym ciągu każda klasa będzie miała osobne połączenie. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 149 Pomógł: 12 Dołączył: 3.03.2008 Skąd: łódzkie Ostrzeżenie: (0%) ![]() ![]() |
Stwórz oddzielny obiekt reprezentujący bazę danych. Będziesz się nim łączył, robił zapytania, otwierał i zamykał transakcje. Obiekty DAO natomiast muszą odwoływać się do tego obiektu bazy danych.
-------------------- "Jeden człowiek nie zmieni świata, ale jeden człowiek może przekazać informację która zmieni świat." - David Icke
| PAMIĘTAJ, JESTEŚ POLAKIEM !!! | Jam jest Polska, Ojczyzna Twoja, ziemia Ojców, z której wzrosłeś. Wszystko, czym jesteś, po Bogu - mnie zawdzięczasz!! |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 6.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
ok, czyli w dao moge mieć wszystkie pola i metody dowolne oraz funkcje generujące zapytania SQL w postaci string?
A w obiekcie basic wykonanie na bazie tego stringa i zwrócenie wyniku w postaci tablicy (lub id połączenia)? Chcę się upewnić że dobrze pojąłem ideę |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Hmm, chyba nie do końca...
Jeśli zasób bazy, etc, będziesz trzymał w rodzicu obiektu DAO (czyli Twój basic), to połączenie będzie się powielać. Ale jeśli chodzi o logikę wykonania, że np. funkcje odpowiedzialne za sam dialog z bazą, które klasy potomne dziedziczą, to ok. ![]() -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 15:01 |