No video

PATRÓN de DISEÑO DTO en JAVA - Tutorial Completo Fácil

  Рет қаралды 12,725

Programando en JAVA

Programando en JAVA

Күн бұрын

🎁 Curso gratuito de JAVA - programandoenj... ✅ ¡Subscríbete a Programando en Java! 👉 bit.ly/3y99SiI
✅ ¡Apoya a que pueda seguir subiendo contenido! 👉 / @programando_en_java
📲 ¡Descargate mi app de lista de compras! 👉 play.google.co...
Redes Sociales:
Comunindad en Discord - / discord
Página web: programandoenj...
Instagram: / programandoenjava
Twitter: / progenjava
TikTok: / programandoenjava
Twitch: / programandoenjava
Libros recomendados 📚
Clean Code (INGLÉS) - amzn.to/46T8L4I
Clean Code (ESPAÑOL) - amzn.to/46xBo7Z
Clean Architecture (INGLÉS) - amzn.to/3ZZXhtS
Clean Architecture (ESPAÑOL) - amzn.to/3rM1k0y
The Clean Coder (INGLÉS) - amzn.to/3PQ26RS
The Clean Coder (ESPAÑOL) - amzn.to/46VtzJ3
Clean Craftsmanship (INGLÉS) - amzn.to/45CeESO
Clean Craftsmanship (ESPAÑOL) - amzn.to/3Foj0lK
Effective Java (INGLÉS) - amzn.to/3QkHOkU
Cracking the Coding Interview (INGLÉS) - amzn.to/48W0Oh1
System Design Interview (INGLÉS) - amzn.to/3txECd5
¡Hola, mi nombre es Ricardo! Soy programador Senior con más de 8 años de experiencia. Me encanta todo el mundo de la tecnología y la programación y quiero ayudarte a entender mejor como funciona el mundo de JAVA sin importar tu nivel.
¡Si tienes alguna duda o preguntar, házmelo saber en los comentarios! 👇
¡Déjame saber qué más te gustaría ver!
Música usada:
A Magical Journey Through Space by Leonell Cassio | / leonellcassio
Music promoted by www.free-stock...
Creative Commons Attribution-ShareAlike 3.0 Unported
creativecommon...

Пікірлер: 50
@programando_en_java
@programando_en_java Жыл бұрын
🔔 ¡Ayúdame a llegar a 50.000 subs! 👉 bit.ly/3y99SiI 🎉 Apóyame - bit.ly/3y99SiI 🎁 CURSO GRATUITO de JAVA - programandoenjava.com/courses/curso-de-java-introduccion-a-la-programacion-java/ 🫡¿Necesitas ayuda? ¡Reunión GRATUITA! 👉 calendly.com/ricardo-programandoenjava 👨‍💻¿Buscas trabajo? Encuéntralo en nuestro canal de Discord 👉 discord.com/channels/1049634483428663326/1197648841877504050 📱Redes Sociales 👉 linktr.ee/programandoenjava
@andresbrinez6123
@andresbrinez6123 9 ай бұрын
Gracias por la explicación sobre el patrón DTO en Java. Me ayudó mucho a entender el tema. ¡Buen trabajo!
@programando_en_java
@programando_en_java 8 ай бұрын
¡Un gran placer!
@jesusarmandomaciasbenitez1517
@jesusarmandomaciasbenitez1517 7 ай бұрын
carnal , no manches me encantan tus videos estoy aprendiendo mas ahorita estos conceptos que cuando inicie hace 10 años
@Jehiselmov
@Jehiselmov Жыл бұрын
Súper interesante y util, hay muy pocos que sean recientes y en español respecto a este tema. Sólo una recomendación, las redes sociales apareciendo en la esquina izquierda abajo (constantemente) a mí me distraen muchísimo y me cuesta concentrarme en lo que estás diciendo. No sé si a otros les pasa pero quizás podrían aparecer ocasionalmente o con mucha menos frecuencia. De todos modos es sólo un detalle, gracias por la info y por este canal 🙆‍♂✌💯
@programando_en_java
@programando_en_java Жыл бұрын
¡Gracias por tu comentario! Puede ser que tengas razón, echaré un vistazo a ver cómo podría hacerlo de otra forma. Un placer de que mis vídeos te ayuden 😄✌️
@fcalderonsanchez
@fcalderonsanchez 3 ай бұрын
Hola Ricardo! Gracias por tan buenos videos! estoy siguiendo el tema viendo los records y mappers, creo son imprecindibles para usarse con el patron de diseño DTO. Tengo una duda relacionada aunque no corresponde al video: Cual es la convención para los paquetes del patrón Controller-Service-Repository: Se ubican las clases en los mismos según la entidad (y sus clases relacionadas)? o se generan paquetes según la capa (com.aaa.controller / com.aaa.repo) y se ponen las clases correspondientes, priorizando la función de la clase más que la entidad en la que se enfonca. Ojalá se haya entendido y puedas absolver mi duda. Mil gracias!!!
@programando_en_java
@programando_en_java 3 ай бұрын
¡Hola! Es una buena pregunta existen diferente forma de estructurar tu proyecto, por norma general existen dos formas de estructurar nuestro proyecto Package By Feature y Package By Layer, como indicaste. La decisión depende de ti como programador o arquitecto, pero para mí, si el proyecto va a ser monolito o va a contener bastantes funcionalidades suelo preferir "by feature" si es pequeño, "by layer" creo que es suficiente. ¡Espero te ayude la respuesta! 🫡
@pauloapptech5038
@pauloapptech5038 Жыл бұрын
Muy interesante, muchas gracias!
@programando_en_java
@programando_en_java Жыл бұрын
¡Gracias a ti por seguir por aquí y darme ánimos! 😉
@TheMiguel18
@TheMiguel18 7 ай бұрын
Bastante claro el video, tengo dos preguntas, ¿en que paquete deberían estar los DTOs, service o controller? Y algo más si supongamos quiero de la misma entidad exponer de dos maneras diferentes sus datos ¿Es correcto crear 2 DTOs para esa entidad ó lo suyo sería usar los getters de un único DTO?
@programando_en_java
@programando_en_java 7 ай бұрын
¡Buenas preguntas! Puedes crear un paquete nuevo que sea “dtos” o si son solamente unos cuantos puedes almacenarlos en el paquete “service” aquellos que están relacionados con los “services” y en “controller” aquellos relacionados con los “controllers”. ¡Claro que es correcto! Si crees que es necesario y tiene sentido tener 2 DTOs para no mostrar a otra capa información adicional, no veo por qué estaría mal 😉✌️
@TheMiguel18
@TheMiguel18 7 ай бұрын
@@programando_en_java Muchas gracias por tu respuesta, me gustó tu canal, suscrito.
@gTosca_666
@gTosca_666 4 ай бұрын
@@TheMiguel18 Yo las coloco en service en unc carpeta dto
@kaltonar
@kaltonar Жыл бұрын
Como siempre magnifico, tengo una duda si podrias hacer un video haciendo inyeccion de dependencias por constructor pero masiva donde se manejen de unas 10 dependencias en adelante, esto haciendo referencia que un proyecto ya estaba construido de esa manera con pura etiqueta AUTOWIRED y simplemente quisiera cambiar de una mejor manera la estructuracion, gracias.
@programando_en_java
@programando_en_java Жыл бұрын
¡Muchas gracias por tu comentario de ánimo! Sobre el problema que describes, no existe de por sí una solución, el problema que veo es que el proyecto no está bien pensado en forma de arquitectura y tienes una clase que se dedica a realizar diferentes tipos de lógica de negocio en vez de tenerlas separadas de forma que se delegue a cada servicio su función específica. La solución que veo es tener que refactorizar la clase y delegar funcionalidades. Espero que se haya entendido cómo lo he explicado, si no házmelo saber. ¡Un saludo! 😉
@lauraseguramartinez8724
@lauraseguramartinez8724 Жыл бұрын
Gracias muy clara tu explicación. Saludos
@programando_en_java
@programando_en_java Жыл бұрын
¡Muchas gracias, me alegro que te haya servido! :)
@matiasvaldes1391
@matiasvaldes1391 Жыл бұрын
Excelente amigo!!!
@ingenieroandreschacon
@ingenieroandreschacon 5 ай бұрын
Una pregunta tienen una hoja de ruta de los videos para aprender java hasta spring boot
@programando_en_java
@programando_en_java 5 ай бұрын
¡Hola, gracias por el comentario! Desgraciadamente no existe una ruta, pero existe un curso gratuito de Java que puedes encontrar en el primer comentario :). Un saludo
@bgarciam
@bgarciam 10 ай бұрын
Hola, excelente explicación, para el aspecto de guardar los datos en BD, igual primero caen lo datos en UsuarioDTO luego pasa a DTO para guardar? o se crea otro dto especial para guardar los datos.
@programando_en_java
@programando_en_java 10 ай бұрын
¡Hola! No sé si te he entendido correctamente pero creo que estás confundiendo “DTO” con “Entity”, Entity es la class que representa una entidad (tabla) en la base de datos, un DTO es una representación de la información que quieres pasar entre capas de tu proyecto. ¿Quizás así es más claro? Dime si te sirve :)
@MsDead28
@MsDead28 11 ай бұрын
hola genial la explicacion mas claro que el agua ajajaja. cambiando de tema que fuente estas usando?
@programando_en_java
@programando_en_java 11 ай бұрын
¡Gracias a ti! Pues sinceramente no lo sé, es la que viene por defecto con el IDE jaja :)
@unknow-re8ly
@unknow-re8ly 8 ай бұрын
Tengo una duda, bueno, más bien quiero una opinión. Para mí proyecto de grado me pidieron hacer un sistema bancario. Mi base de datos ya estaba construida y funcionando y tenía mis clases entidades de las tablas. Supuse que la seguridad de los datos era lo más importante y que esos registros de la base de datos no salgan de la capa de datos así que dentro de la capa de datos tenia varios métodos que encriptaban los datos mas sensibles como números de tarjetas o contraseñas. El objeto encriptado contenía todos los campos del registro y pasaba a la capa de negocio donde hacia todo lo que tenía que hacer. Decidí dejar intactos los datos de menor importancia como el nombre y apellido para presentarlos tranquilamente en la capa de visualización. Creo que sin ser consciente aplicaba el patrón dto pero, este planteamiento de usar un registro completo encriptado es lo correcto? Tome la decisión de encriptarlo porque en caso de hacer operaciones de bajo nivel como actualizar contraseñas o consultar ahorros me facilitarian mucho la tarea de tener hacer estas operaciones sin tener que volcer a consultar a la base de datos. Esto que hago está bien?
@programando_en_java
@programando_en_java 8 ай бұрын
Está bastante bien pensado y es como debería ser ya que como explicas no quieres que otras capas “sepan” de algún tipo de información y puedes utilizar la encapsulación para poder modificar esos datos como también comentas. Si quieres una opinión, para un proyecto de cara a un negocio es mejor que deleges el guardado de las contraseñas o datos sensibles ya que si quisieras tú añadir la seguridad puede ser un tema bastante delicado. ¡Espero que sigas así! Si necesitas algo más, no dudes en comentar 😎✌️
@biancahoffmann2489
@biancahoffmann2489 7 ай бұрын
Hay alguna diferencia entre modelo y entidad? por ejemplo yo en javascript/typescript, al usar prisma o mongoose, primero creo un modelo, que luego se crea en la base de datos y la entidad es de como se va a "comportar" en mi backend, ya sea agregando mas cosas para algo en concreto... y mi dto por ejemplo al registrar un usuario solo tiene, nombre, email, password.... asi tambien pasa en spring boot? ya que en el video sale entidad y se relaciona con las columnas de una base de datos.
@programando_en_java
@programando_en_java 7 ай бұрын
Buena pregunta, es posible que se use de forma sinónima, pero el modelo es más en concreto a lo que es el diseño de la base de datos y la entidad es la tabla en sí. En Spring Boot no hace falta crear ningún tipo de "modelo" cómo en prisma, al crear las clases de entidades Spring ya es capaz de crear el modelo de la base de datos. En prisma se crea un "modelo" con archivos ya que es un frameworks diseñado para poder ser usado por diferentes lenguajes de programación y te generan las entidades según el modelo creado, en Spring Boot no. ¡Un saludo! 😎
@biancahoffmann2489
@biancahoffmann2489 7 ай бұрын
@@programando_en_java genial, muchas gracias 😁
@ronaldoclementerodriguezco6936
@ronaldoclementerodriguezco6936 Жыл бұрын
Hola, muy buena explicacion felicidades. He visto videos donde explican esto de los DTO, pero veo que crean un interfaz le llaman wrapper creo, donde transforman las entidades en dto. En este ejemplo que nos explics no lo usaste de esa manera. Porque? Es mejor manejarlo con una interfaz para transformar las entidades a dto o viceversa?
@programando_en_java
@programando_en_java Жыл бұрын
¡Hola! Ahora mismo no sé cómo sería, ¿tienes algún ejemplo? Así podría ver por qué usan una interfaz en el DTO y Entity
@neiderpineda8023
@neiderpineda8023 3 ай бұрын
Yo suelo utilizar mapStructs para el mapeo de entidades a dto y viceversa, es muy fácil de utilizar
@alessandraayala3295
@alessandraayala3295 9 ай бұрын
No es necesario tener todos los atributos de la entity en la DTO, en especial a las FK, no?
@programando_en_java
@programando_en_java 9 ай бұрын
Exacto, en los DTO deberíamos de tener los datos que necesitamos, hay que tener cuidado de exponer aquellos que pueden traer problemas de seguridad, como las claves primarias o FK, como mencionas 😉🤘
@RLAPERU2
@RLAPERU2 Жыл бұрын
Buena explicacion,, como manejas el DTO cuando retorna varios registros?
@programando_en_java
@programando_en_java Жыл бұрын
¡Hey gracias por tu comentario! ¿A qué te refieres exactamente cuándo retorna varios registros? Si es hacer dos consultas a la base de datos, es posible crear un DTO que contenga ambos ambos en una sola clase 😉
@leonardohuaca7146
@leonardohuaca7146 Жыл бұрын
​​@@programando_en_java dentro de un DTO tengo los atributos de la clase(esta contiene un clase relacionada.tmb) y tmb quiero mostrar los datos de la clase relacionada , pero solo para mostrar informacion solo get , sin persistir en la base de datos, esto es un Dto tambien? ,
@programando_en_java
@programando_en_java Жыл бұрын
@@leonardohuaca7146 ¡Hola! Creo que no he entendido exactamente tu pregunta, creo que estas hablando de Entidades y lo estás mezclando con un DTO, pero realmente no he entendido tu mensaje, ¿podrías volver a explicarlo, por favor?
@leonardohuaca7146
@leonardohuaca7146 Жыл бұрын
@@programando_en_java Hola , si entendi , pero como se puede retornar un objeto vacio en vez de un null cuando este no se encuentre en la database (intente con los empty pero igual sale null ) Optional userById= user.findById(id); -respuesta json , quiero q me salga asi {} en vez del null { dataUsuario : null } { dataUsuario : {} }
@programando_en_java
@programando_en_java Жыл бұрын
@@leonardohuaca7146 ¡Ya veo! Te explico, Java es un lenguaje fuertemente en la orientación a objectos, eso quiere decir que no es tan flexible cómo puede ser javascript para enviar objectos vacíos. La única forma de enviar un objecto vacío, es decir '{}' tienes que tener una clase sin ningún atributo o indicar a través de anotaciones, cómo por ejemplo si usas Jackson, la anotación @JsonIgnore, otra forma es crear el JSON en formato String por ti mismo y enviarlo de vuelta. No sé exactamente cómo lo estas haciendo, pero entiendo que puedes estar usando Spring Boot para devolver un Json. Si tienes más dudas, házmelo saber ;)
@user-ro3nh3se3c
@user-ro3nh3se3c 11 ай бұрын
Hola! Gracias por tu contenido!! Tengo una duda: por qué siempre usas final en lugar de private en los atributos?
@programando_en_java
@programando_en_java 11 ай бұрын
Utilizo final para definir que los atributos de la clase sean inmutables, también puedes marcarlos como private :)
@aamb_c133
@aamb_c133 7 ай бұрын
buenas cual es la diferencia con el patrón de diseño DAO?
@programando_en_java
@programando_en_java 7 ай бұрын
Los DAO son clases que se encargan del manejo y acceso de la base de datos, los DTO se encarga de el envío de información entre capas de nuestro proyecto. No sé si se entenderá pero si no házmelo saber 😉
@aamb_c133
@aamb_c133 7 ай бұрын
@@programando_en_java El concepto esta claro pero no me queda claro como se integra en una API Es decir usaría objetos DTO en la clase Controller y objetos DAO en la clase de servicios o como seria?
@programando_en_java
@programando_en_java 7 ай бұрын
@aamb_c133 las clases DAO son clases con lógica para la base de datos, los DTO son clases con estructura de información sin lógica, los DTO se usan tanto en los controllers como en los servicios, los DAO para la capa de persistencia donde se usa las clases de entidades 🙏😄
@aamb_c133
@aamb_c133 7 ай бұрын
@@programando_en_java Osea que DAO los usaría para no tener que trabajar directamente con las entidades
@programando_en_java
@programando_en_java 7 ай бұрын
@aamb_c133 ¿directamente? Los DAO trabajan con las entidades :)
@breynnerariza5239
@breynnerariza5239 6 ай бұрын
Que buena explicación, muchas gracias!
GIVEN WHEN THEN en JAVA (PRUEBAS UNITARIAS) - Tutorial Completo Fácil
10:18
¿Qué es un DTO y cómo mapearlo? | Data Transfer Object
15:54
Manuel Zapata
Рет қаралды 53 М.
English or Spanish 🤣
00:16
GL Show
Рет қаралды 5 МЛН
Joker can't swim!#joker #shorts
00:46
Untitled Joker
Рет қаралды 40 МЛН
My Cheetos🍕PIZZA #cooking #shorts
00:43
BANKII
Рет қаралды 28 МЛН
Challenge matching picture with Alfredo Larin family! 😁
00:21
BigSchool
Рет қаралды 43 МЛН
JAVA DTO Pattern Tutorial | Simplify Your Code
19:12
Amigoscode
Рет қаралды 200 М.
Dto vs DAO vs Repository - Entenda esses patterns e SUBA DE NÍVEL!
21:50
⚔️ DAO vs. DTO: Batalla de Patrones en Diseño de Software 🛠️
1:14:36
SERIALIZABLE en JAVA - Tutorial Completo Fácil
9:38
Programando en JAVA
Рет қаралды 11 М.
Spring Data | @ManyToMany @ManyToOne @OneToMany - Tutorial Completo Fácil
13:15
English or Spanish 🤣
00:16
GL Show
Рет қаралды 5 МЛН