Wpis z mikrobloga

Wytłumaczy mi ktoś różnicę między DTO a DAO, tworzę aplikację restową i widzę pełno przykładów z użytą warstwą DTO, moja aplikacja korzysta z DAO przy połączeniu z bazą danych, po co w takim razie stosuje się DTO? Powinienem tego używać?
#programowanie #java #spring
  • 6
  • Odpowiedz
@rav33: 1. DTO jest troszkę bezpieczniejsze, jeśli używasz DAO w widoku, możesz nieopatrznie zdradzić za dużo informacji. Przykład: Napisałeś swój własny wykop.pl, na jednej stronie wyświetlacz ranking użytkowników (entity Users z parametrami takimi jak login, hash hasła, email). Nie chcesz chyba, by po wciśnięciu F12 w przeglądarce użytkownik zobaczył wszystkie prywatne dane użytkowników?
2. DTO pozwala przekształcać dane przechowywane w bazie. Np. cena jest w bazie zapisana w euro, a
  • Odpowiedz
@kernelpan1c: w DAO mam metody pobierania danych użytkownika z bazy danych, zapisywania użytkownika do bazy, usuwania użytkownika z bazy przy wykorzystaniu do tego hiberante.

@rilly Dzięki, za odpowiedź. Czyli powinienem użyć takiego schematu: Baza danych -> DAO -> DTO -> Entity/Model/Domain -> Controller? Czy w takim przypadku Entity/Model/Domain to pojęcia równoznaczne?
  • Odpowiedz
@rav33: @rilly: DTO to Data Transfer Object, tworzysz go pod specyficzny case gdzie chcesz przekazać konkretne dane z jednego miejsca do drugiego - on tylko je grupuje. Praktycznie taki struct z C. Jak masz bazodanowe encje to zapewne posiadają o wiele więcej informacji niż chcesz przekazać do użytkownika API, więc tworzysz DTO które przekazuje tylko te informacje które chcesz przekazać.

DAO to Data Access Object i jest to
  • Odpowiedz