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 ?
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