Na forum 4programmers.net korzystamy z plików cookies. Część z nich jest niezbędna do funkcjonowania
naszego forum, natomiast wykorzystanie pozostałych zależy od Twojej dobrowolnej zgody, którą możesz
wyrazić poniżej. Klikając „Zaakceptuj Wszystkie” zgadzasz się na wykorzystywanie przez nas plików cookies
analitycznych oraz reklamowych, jeżeli nie chcesz udzielić nam swojej zgody kliknij „Tylko niezbędne”.
Możesz także wyrazić swoją zgodę odrębnie dla plików cookies analitycznych lub reklamowych. W tym celu
ustaw odpowiednio pola wyboru i kliknij „Zaakceptuj Zaznaczone”. Więcej informacji o technologii cookie
znajduje się w naszej polityce prywatności.
witam, mam pytanie odnosnie mapowania, czym jest mapowanie? i po co sie je stosuje? chodzi mi dokladnie o przypadek gdzie mam z formularza przeslac dane do controlera, jako powiedzmy ContactForm, pozniej zapisac do bazy danych i na koncu wyswietlic zmodernizowane dane z bazy.
Chodzi o to zeby nie pobierac tez wszystkich danych tylko te potrzebne, np .numery telefonów.
To jakieś zadanie na studia? Jeżeli tak to napisz całość polecenia i zadaj konkretne pytania, bo ciężko wywnioskowac z Twojego posta w czym masz problem.
Ok, mamy nieco bardziej konkretne informacje. Pozostaje pytanie - w czym dokładnie masz problem, na czym utknąłeś? Napisałeś już jakiś kod i coś nie działa?
z formularza dostaje dane od uzytkownika i chce je przypisac do odpowiednich rekordow w bazie, tylko jak. ?
Formularz i baza ma pola: imie, nazwisko, data urodzenia, telefon, adres.
Ale z bazy chce zwrocic tylko imie nazwisko i wiek
w modelu jest klasa przedstawiajaca rekordy bazy, czy dane z formularza wystarczy odpowiednio poprzez settery przypisac do poszczegolnych pol klasy ??
czy tu chodzi o zwykle przypisanie wartosci do danych zmiennych ?
gdzie powinno sie umieszczac metody pobierajace poszczegolne dane z bazy ? w serwisie ?
Metoda ktora ma zmienic date urodzenia na wiek gdzie powinna byc umieszczona?? w kontrolerze ?
w modelu jest klasa przedstawiajaca rekordy bazy, czy dane z formularza wystarczy odpowiednio poprzez settery przypisac do poszczegolnych pol klasy ??
czy tu chodzi o zwykle przypisanie wartosci do danych zmiennych ?
Tak. Chociaz bardziej do modelu niz zmiennych
gdzie powinno sie umieszczac metody pobierajace poszczegolne dane z bazy ? w serwisie ?
W repository. Z taka gwiazdka, ze jak nie planujesz innego "modelu" persystencji to ORM juz robi za repo
To ja mam również pytanie, bo akurat sam się uczę takich rzeczy: czy w przypadku kolegi wystarczy zrobić odpowiednie klasy Entity reprezentujące bazy danych, a następnie stworzyć obiekt DTO by pobierać z niego numery telefonów? Czy to bez sensu i nie do tego służy DTO?
To ja mam również pytanie, bo akurat sam się uczę takich rzeczy: czy w przypadku kolegi wystarczy zrobić odpowiednie klasy Entity reprezentujące bazy danych, a następnie stworzyć obiekt DTO by pobierać z niego numery telefonów? Czy to bez sensu i nie do tego służy DTO?
Ogólnie powinieneś budować aplikacje wokół czegoś co się nazywa obiekty biznesowe (encje biznesowe). Te obiekty/encje biznesowe mają odwzorowywać domenę czyli twój problem najlepiej jak się da (są modelem domeny). W idealnym świece powinny być to jedyne obiekty danych (encje) jakie potrzebujesz.
Ponieważ nie żyjemy w idealnym świece jest prawdopodobne że będziesz potrzebować encji (obiektów danych) bazodanowych do komunikacji z bazą danych. To prawdopodobieństwo rośnie proporcjonalnie do czasu życia aplikacji. Czyli im dłużej żyje aplikacja tym bardziej prawdopodobne że model domeny będzie się nie zgadzać z modelem w bazie danych i będzie potrzebne mapowanie w kodzie między modelami.
Jeszcze częstszym przypadkiem jest mapowanie modelu domeny na DTO (Data Transfer Object) czyli obiekty dedykowane do przesyłania przez sieć. W DTO często są spłaszczone (dane w nich mają mało poziomów zagłębień) w przeciwieństwie do encji z modelu domenowego gdzie stara się agregować podobne pola razem w obiekty i walczy się o to żeby żadna klasa nie miała 10 czy 20 pól (co w DTO się zdarza)
Ogólnie jak będziesz pisać prostego CRUDa na inżyniera/magisterkę czy żeby nauczyć się nowego wspaniałego frameworka to na 90% model domeny będzie identyczny z modelem bazy danych i z modelem DTO i żadne mapowania nie będą potrzebne
Usunąć wpis?
Tej operacji nie będzie można cofnąć.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.
TheLearnerscibi92scibi92