⚔️ DAO vs. DTO: Batalla de Patrones en Diseño de Software 🛠️
Vložit
- čas přidán 5. 08. 2024
- Explora con nosotros la batalla entre los patrones de diseño DAO y DTO en este tutorial detallado. 🚀 Aprende cuándo y cómo utilizar cada uno con un ejemplo práctico que te guiará paso a paso. Ideal para desarrolladores que buscan optimizar sus habilidades en acceso y transferencia de datos. 🛠️
¡Dale like y suscríbete para más contenido sobre programación efectiva! 🎓 Deja tus preguntas o sugerencias en los comentarios.
🔶Repositorio: github.com/UnProgramadorNaceO...
🔶Videos sugeridos:
⭐️Mapeo Maestro: Java Mappers: • Mapeo Maestro: Domina ...
⭐️Video guia Spring security completa: • 🔒✨ Spring Security 6: ...
⭐️Video relaciones con JPA: • Dominando las Relacion...
⭐️Video direcciones con JPA: • Spring Data JPA: Tipos...
⭐️Video patron BUILDER: • Patrones de diseño: Bu...
🔔 Redes sociales 🔔
🔶Facebook:
profile.php?...
🔶Instagram:
/ unprogramadornaceofficial
🔶 Sígueme en LinkedIn: www.linkedin.com/comm/mynetwork/discovery-see-all?usecase=PEOPLE_FOLLOWS&followMember=unprogramadornace
🔶 Contacto:
unprogramadornace@gmail.com
⭐Donaciones⭐
paypal.me/unprogramadornace?c...
🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟
Si este video ha sido de ayuda para ti, por favor ayudame tú a mí con un poderoso like al video y suscribiéndote al canal para seguir creando más contenido como este.
🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟
📚 Temario:
00:00 Introducción
00:54 Explicacion teorica
10:00 Inicio del proyecto
11:20 Configurar base de datos
16:18 Creacion de controller - Inicio de DTO
30:05 Creacion de service
42:45 Creacion de DAO
01:17:16 Pruebas a nuestro CRUD
No olvides que un programador en Spring con DTO y DAO nace programando en Spring con DTO y DAO. Práctica todo lo que puedas que la meta está a la vuelta de la esquina, solo debes ir por ella.
Si tienes alguna pregunta no dudes en escribirla en los comentarios.
Saludos!
#java
#PatronesDeDiseño
#dao
#dto
#springboot3
#springframework
Empecé viendo un video tuyo el de Spring Security 6 y ahora ya no puedo dejar de ver los demás videos por la calidad de explicación y empeño que se nota que le pones, gracias profe
Gracias por tus palabras y por tomarte el tiempo de comentar.
¡Saludos!
Excelente video, pero no seria mejor comparar el patrón DAO con el Repository porque ambos patrones interactúan con la base de datos. El DTO es más para transportar datos.
Hola, es muy válida tu sugerencia. El tema es que muchas personas se confunden entre DAO y DTO; de hecho, por eso tuve que hacer el video, porque muchas no entienden bien la diferencia. Entiendo perfectamente a lo que te refieres, pero para alguien que no conoce absolutamente nada de esto, le puede costar entender que estos dos patrones funcionan de manera distinta. Aunque la diferencia entre repository y DAO no es tan grande, simplemente con DAO haces las cosas tú mismo y con Repository lo hace Spring. ¡No hay más que decir! Jejeje.
Saludos.
Muy buena explicacion para entender como funciona de fondo el repository, a veces hacemos las cosas en automatico y no entendemos el funcionamiento atras del codigo gracias!!!!
Excelente tutorial, favor indicar la documentación que hace la recomendación del porque no usar @Data en la entidad. Muchas gracias profesor.
Justo lo que consultaba en otro de tus videos, con esto se responde a mi consulta que dejé por allá xD. Gracias✌️
Aún sin verlo pero estoy seguro que ayudará mucho y a muchos, gracias por los aportes.
Muchas gracias!!!, me enseñaron esto en mi instituto pero de forma muy superrficial , gracias a tu video ahora lo entiendo mejor :D
Excelente explicación brother!
La verdad muy buenas prácticas 😊
Santi parce, sos un mounstro, que tipo tan calidoso🎉
Gracias por comentar.
¡Saludos!
Justo lo que necesitaba agregar a la arquitectura hexagonal en springboot, gracias
Excelente Video! una explicación muy clara! Muchas Gracias
Buen video , cuando un video de spring-data-jpa-entity-graph para consultas dinamicas y evitar tantos querys en el back.
Hola, gracias por comentar. Voy a tener en cuenta tu sugerencia.
Saludos.
Muchas gracias! Fue muy util la explicación
Como siempre una explicación increíble siempre tus videos son de lo mejor, gracias por el tiempo y la dedicación
Gracias a ti por comentar.
¡Saludos!
Todavía no lo veo y ya le di like... Se que es una super clase... Cómo siempre.
Gracias por la fidelidad.
¡Saludos!
Gran video, en un video solo, he aprendido a utilizar bien el DTO y DAO, y descubierto la existencia de Lombok, ahora me tocara mirarme tu video sobre Lombok.
Muchas gracias!!
Excelente contenido, de verdad me ha aclarado las dudas, soy fan de tu canal! Muchas gracias!! Un saludo
Gracias por comentar y por seguir el canal.
¡Saludos!
Excelente explicación, gracias
Woww Tremendo video, muchas gracias por el contenido
Excelente explicacion , muchas gracias
Excelente video, amigo, soy nuevo aprendiendo Spring y te doy las gracias porque me has hecho entender en menor tiempo mucho más de lo que pude haber entendido antes, eres literalmente un maestro. Sobre el video, solo me quedó la inquietud que no validaste las excepciones al momento de hacer el CRUD en la API Rest al finalizar el video.
Hola, muchas gracias por tu comentario. Este video solamente trataba sobre la diferencia entre DAO y DTO, manejo de errores es un tema aparte. Jeje!
¡Saludos!
@@unprogramadornace gracias; disculpa, soy nuevo en el canal; tienes algún video que trate sobre el tema?
@@leonardopaez894 Hola, por ahora no tengo videos sobre manejo de excepciones.
¡Saludos!
Excelente video para aclarar los conceptos, muchas gracias. Una sugerencia de videos podría ser socket o hashicorp vault, muchas gracias por todo
Muy buen video, me gustaría que crearas otro enseñando como controlar los errores y como mandar las respuestas de los errores al cliente.
Te recomiendo buscar videos de handlers o interceptores creo que se llamaria. Lo que haces es crear una Exception personalizada y despues con una clase de tipo @RestControllerAdvice insertas los metodos de tipo @ExceptionHandlers. Lo que tenes que hacer es que la excepcion llegue al metodo del controller para que los handlers funcionen (no lo recuerdo bien si era asi). Pero busca videos sobre ExceptionHandlers, hay muchos y es re simple usarlos... Incluso podes crear Handlers para cuando no envian body, pathvariables y esas cosas, ademas de que podes usarlo con la dependencia de Validation y quedaria super tu API REST
Muy bien explicado, como dicen cortito y al pie. facil de entender con ejemplos sencillos para comprender esa duda que existe entre DTO vs DAO que a muchos nos costo y cuesta cuando estamos aprendiendo sobre patrones.
Muchas gracias por comentar.
Saludos.
Excelente forma de explicar y abarcar un tema tan importante a la hora de desarrollar en Java, gracias a tan detalladas explicaciones es posible entender no solo este maravilloso lenguaje de programación sino tambien conceptos técnicos muy importantes del día a día.
Gracias por tomarte el tiempo de comentar.
¡Saludos!
Excelente profe, explica todo muy bien y entendible, estaba en 0´s
Me gustó mucho el vídeo, además como explica mediante la gráfica. Yo si quisiera saber porque no se debe usar @Data en un Entity. Gracias y siga adelante con los vídeos.
Muchas veces empezamos a crear nuestros proyectos en base a algún tutorial sin saber que patrones estamos aplicando y peor del por qué se aplica un patrón, gracias a estos vídeos sabemos el motivo real de estos patrones, gracias por los videos
Hola, me alegra que después de ver el vídeo tengas un poco más claro algunos conceptos. Gracias por comentarlo.
¡Saludos!
Gracias como siempre por el buen contenido! si puedes crear contenido de seguridad en spring boot con Keycloak seria lo maximo.
Hola, en el canal ya existe un video sobre Spring boot con Keycloak.
Te comparto el enlace:
czcams.com/video/zR3igUft1KA/video.html
Te invito a suscribirte al canal y activar la campana de notificaciones para que estés enterado de los temas que trato aqui en El canal.
¡Saludos!
Mil gracias n_n
Muchas gracias por la explicación excelente, como uno decide si usarlo de esta manera, o hacerlo con los repositorios y dejar que spring lo haga
Excelente video , existe la posibilidad de que realices un vídeo de manejo de excepciones y errores 🙏🙏
Gracias por comentar. Tendré en cuenta tu sugerencia.
¡Saludos!
Muy buen curso 🎉 si es posible explicar porque no poner en las entitys el arroba data
La verdad no soy mucho de comentar en videos, pero la verdad es que tu contenido es muy bueno, además tus explicaciones son geniales te felicito, podrías hacer una una serie de arquitecturas , se que toma tiempo pero podría ser interesante.
Muchas gracias por tu comentario; voy a tener en cuenta tu sugerencia.
¡Saludos!
Excelente tutorial, lo único que me hace ruido y me gustaría en lo posible ampliar este mini proyecto para: manejo de excepciones y trabajar la capa de negocio haciendo validaciones y demás. Siempre es bueno aprender y repasar estas cuestiones. de todos modos a no confundir, me encanto el tutorial todo muy claro
Hola, entiendo tu punto de vista, pero ya tengo otros videos tratando esos temas. Adicionalmente no puedo mezclar diferentes temas porque El objetivo es explicar cada cosa en especifico. Pronto vienen proyectos combinando todo.
¡Saludos!
Tengo una inquietud, con el uso del DAO y el DTO puedo evitar la recursión Infinita en la serialización?. Al tener entindades con relaciones bidireccionales siempre me ocurre dicha recursión, me sería de gran ayuda tu respuesta, gracias.
BUEN VIDEO TIO NACE.
Podrías por favor implementar monolito modular para comprender como se comunican y estructura??
He aprendido mucho con tus videos, te agradezco mucho por el contenido que nos proporciones. Y me gustaría que más adelante pudieras enseñarnos Herencia con spring boot, Sobretodo porque tengo una duda: cómo hago para crear una Entidad Person, la cual va a tener atributos como nombre, mail, teléfono y Address (la cual es otra Entidad, donde se almacenarán los detalles de la dirección). No obstante, Person es la case padre de Owner y Customer, las cuales tienen esos atributos en común más otros que no, además de la particularidad de que un Owner sólo puede tener una Address pero Customer puede tener muchas Address
Hola, tendré en cuenta tu sugerencia.
Pero para manejar herencia con JPA se tienen que tener algunas cosas en cuenta, claro que JPA nos ayuda a trabajar con eso, pero es complicado explicartelo en un comentario, mi consejo es que busques un poco de documentacion en google.
Espero puedas resolverlo.
¡Saludos!
Excelente video profe, que gran metodología de enseñanza y llegada a las personas. Espero siga así y pueda seguir creando este gran contenido.
Está en plataformas como udemy o algo similar?
Hola, por ahora no tengo cursos en Udemy.
¡Saludos!
@@unprogramadornaceprofe de casualidad tendrá como desplegar el Back bien sea dockerizado o no?
puede ser que ahora se use mas el repository que lo implemente directamente el service y listo, no entiendo la diferencia entre ambos, muy buen video!
Hola, CUIDADO con esa percepcion, el repository podria facilmente reemplazar al DAO, pero el DTO es otra cosa completamente aparte. En algo en lo que concuerdo contigo es que obviamente el repository es mas usado y simplifica mucho todo, pero de Igual modo es bueno conocer estos conceptos para saber como funciona Spring por dentro.
¡Saludos!
Muchas gracias. Comence a verlo y estoy aprendiendo muchos conceptos que los tenia confusos. En el futuro podrías hacer alguna tutorial para generar reportes en pdf? gracias!
Hola, muchas gracias por tu comentario. Desde hace bastante tiempo existe en el canal un video sobre creación de reportes en PDF, te comparto el enlace:
czcams.com/video/UExwNGhEcZc/video.html
También te invito a suscribirte al canal y activar la campana de notificaciones para que estés enterado de todos los temas que voy tratando en el canal.
¡Saludos!
Muy buena explicación, solo una duda, retorno del la creacion usuario, para efectos d emostrar el ID, tendriaos que recuperarlo también u no un null, no?
Hola, la aplicacion puede mejorarse o funcionar como tu quieras. Este es solo un demo de ejemplo. Ese null podria quitarse o retornar directamente el ID del usuario creado.
Saludos.
Quisiera que crearas un video acerca de las Relaciones, por ejemplo OneToMany, ManyToOne, etc mediante un ejercicios. Ojalá lo tuvieras en cuenta. Gracias
Hola, si revisas los videos del canal de darás cuenta que ya tengo 2 videos hablando del tema, te los comparto:
Relaciones con JPA: czcams.com/video/6RQTsx_6wXo/video.html
Relaciones bidireccionales vs unidireccionales: czcams.com/video/NnNzisMeRWk/video.html
Te invito a suscribirte al canal y activar la campana de notificaciones para que estes enterado de los temas que voy tratando en el canal.
¡Saludos!
@@unprogramadornace Que pena Santi que no revisé los vídeos en el canal. Graciss
@@TheSoporte No hay lío. Saludos.
Una Consulta , tu explicaste el CRUD con Entity Manager , existe otra manera que la enseñan , usando CrudRepository , cual recomiendas ? . Muchas gracias
Hola, a mí me gusta usar más los repositorios. Sin embargo, tenía que explicar cómo funciona el DAO para aquellos que no lo tenían claro.
Saludos.
creo que no se utiliza @Data en el entity para evitar problemas que interfieren en las relaciones y eso entraría a ser una mala practica? XD?
Hola, de hecho usas @Data para las relaciones no tiene nada de malo, no se recomienda utilizar por otros motivos relacionados con la carga perezosa de JPA, se viene un video hablando del tema.
¡Saludos!
una pregunta, por que usas @Autowirred? no seria mejor utilizar directamente la anotacion en la clase el @RequieredArgsContructor? y definir el dao como un final cuando lo instaciamos?
Hola Carla, muchas gracias por tu pregunta. Te comento:
Lo primero que debes tener claro es que en Spring (De forma nativa) existen 3 formas diferentes de inyectar dependencias:
1) Por constructor
2) Por metodo setter
3) Usando @Autowired
Esas son las 3 formas nativas de hacerlo.
Cuando usas @RequiredArgsContructor (Anotacion propia de Lombok), lo que estas haciendo en una inyeccion por constructor, obviamente es automatizado por Lombok, pero es completamente valido.
Conclusion:
Cualquiera de las 3 formas de inyeccion son correctas, tambien puedes usar Lombok con esa anotacion. Puedes trabajar como mas te gusta.
¡Saludos!
@@unprogramadornace gracias, si no es mucho pedir, sera que puedes hacer un video de las buenas practicas en el servicio repositorio o dao en el model, o un video de buenas practicas general usando spring boot. si es posible
Me lo apunto.
¡Saludos!
Excelente, ¿recomiendas crear nuestro propio DAO siempre en nuestros proyectos o usar el repository de siempre?, ¿cuál es mejor práctica? 😅
La verdad me gusta más el repository. Ambas formas están bien, pero por simplicidad me gusta más el repository.
¡Saludos!
Ahora mi duda es cuando usar DAO o Repository
Hola, todo depende de las necesidades del proyecto.
¡Saludos!
Por que vs? Se usan para cosas distintas que no tienen nada que ver.
Hola, tienes toda la razón; se usan para cosas distintas. La justificación del VS es porque a mucha gente le dificulta diferenciar estos dos patrones; se confunden un poco. Por ese motivo puse ese nombre. Pero, tienes toda la razón: se usan para cosas diferentes.
¡Saludos!
No son incompatibles
Crea cursos en Udemy y te haces millonario 🤑🤑🤑🤑