Mapowanie

0

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.

Z gory dziekuje za pomoc

1

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.

0

Do stworzenia mam formularz kontaktowy, którego pola maja byc zapisane w bazie danych, z bazy danych mam pobrac liste samych numerow telefonow.

0

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?

1

Ale jakie mapowanie? ORM?

0

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 ?

0
stivens napisał(a):

Ale jakie mapowanie? ORM?

tak

1
Sa1rus napisał(a):

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

0

co w takim razie umieszcza się w serwisie ?

1

Np.

Metoda ktora ma zmienic date urodzenia na wiek gdzie powinna byc umieszczona??

Wyprzedzajac pytanie. Controller reaguje na dzialania uzytkownika i wywoluje metody z serwisu

0

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?

1

@TheLearner: wystarczy zapytanie SQL

2
TheLearner napisał(a):

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1