Uma das coisas que acontecem muito em uma aplicação (seja java ou não), é um objeto ser criado com valores do banco de dados, e o banco de dados ser atualizado com valores de um objeto, existe algum padrão de projeto que deixe isso automatizado ?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Uma das coisas que acontecem muito em uma aplicação (seja java ou não), é um objeto ser criado com valores do banco de dados, e o banco de dados ser atualizado com valores de um objeto, existe algum padrão de projeto que deixe isso automatizado ?
Bom dia Vinicius,
Mais do que um design pattern, tem frameworks que fazem isso. Basicamente, a especificação JPA do JEE é isso. Ela te provê meios para trabalhar com os objetos de forma transparente e sem se preocupar com o paradigma relacional no lado do banco de dados. Basicamente, o JPA lhe fornece uma forma de dentro do seu design pattern DAO (Data Access Object), você abstrair o paradigma do banco de dados e tratar as querys e tudo mais de forma OO.
Uma implementação muito famosa da JPA é o Hibernate, com ele você consegue criar um objeto já recuperando todos dados do banco, e uma vez que esse objeto esta no estado que o EntityManager chama de Managed (gerenciado), qualquer alteração que você faça neste objeto, através dos sets dele por exemplo, já será automaticamente refletido no banco de dados, o Hibernate automaticamente executará os updates necessários. Mas para que isso funcione bem é sempre bom conhecer bem os Estados de um objeto no contexto de persistência destes frameworks ORM.
Espero ter ajudado, abraços.
Oi Vinícius esse padrão que você está falando é o ORM (Object Relational Mapping). A ideia é basicamente isso que você mencionou, um objeto que é replicado no banco de dados... No Java, a especificação da JPA define como deve ser feito o ORM no Java. Existem diversas ferramentas que implementam essa especificação, dentre elas, a mais famosa, talvez a mais utilizada também, é o hibernate (temos um curso dele também veja). Mas é como você mesmo disse, é um padrão, portanto, outras linguagens também usam esse conceito, é uma questão de verificar as implementações de ORM para a linguagem que você deseja usar esse conceito.
Abraços.
Obrigado pessoal, vou estudar persistência de dados com java, para aprender Hibernate