Quais as vantagens da persistencia de dados?

15 respostas
P

Está semana eu andei postando no forum diversas perguntas relacionadas a hibernate e spring, mas a grande dúvida seria sobre persistencia de dados.
Procurei em diversos sites uma resposta coerente da qual eu pudesse entender quais beneficios eu poderia obter utilizando um framework para gerar persistencia de dados.
Não sei ao certo se persistir a todos momento seria a melhor solução, pode haver momentos que para uma tela com uma combo com 20 itens o jdbc resolveria facilmente, claro que se essa página for acessada por diversas pessoas e eu possa ter uma forma de fazer um cache para que a proximo usuário possa ter um acesso mais rápido pois essas informações já foram carregados anteriormente seria muito bom…
Parece até estranho, mas eu noto que existem pessoas que utilizam o hibernate simplesmente porque ele se tornou um padrão de mercado e nem faz ideia dos beneficios que el pode oferecer… usam por usar e se alguém fizer algum questinamento elas saem correndo…
Valew pessoal…

Marco Paradiso

15 Respostas

Mauricio_Linhares

Se você gosta de JDBC, boa sorte!

Pra enviar, atualizar, deletar e listar entradas no banco com o Hibernate e Spring agente faz assim:

Salvar:

getHibernateTemplate().save(objeto)

Atualizar:

getHibernateTemplate().update(objeto)

Deletar:

getHibernateTemplate().delete(objeto)

Listar:

getHibernateTemplate().loadAll(Objeto.class)

Agora me mostre o código JDBC pra fazer isso (não se esqueça que tem que ser genérico!) :lol:

P

Eu não disse que gosto de jdbc… eu simplesmente relatei o fato de não ter entendido as vantagens da persistenciae em quais momentos ela pode ser super util e as horas que não… o fato de vc pegar um grupo de 100 pessoas que dizem utilizar hibernate e comece a questionar o motivo da utilização… esse é o meu problema… procurei em diversos lugares informações sobre esse assunto e não consegui uma resposta coerente…

Mauricio_Linhares

E você quer o que? Que alguém diga que é uma merda?

kina

Produtividade. (Não tenho que ficar desenvolvendo querys)
padrão a ser seguido.
Melhor desempenho da aplicação (Se não me engano o Hibernate tem cache)

Mais coisas em:
Hibernate

P

Acho que vc não entendeu a pergunta… eu não falei que o jdbc, hibernate ou qualquer framework de gerenciamente de persistencia automatica são ruins… eu só queria saber as vantagens que eu posso obter com a persistencia de dados, se existe algum momento que é mais vantajoso utilizar o proprio jdbc… Na empresa que eu trabalho temos o oracle eo postgres com bases de daos gigantesca… quando eu preciso montar um relatorio tenho que fazer uma query q retorna uma grande quantidade de dados… mas monetos são poucos dadso…
Entendeu ???

Mauricio_Linhares

Olha, relatório não é uma coisa comum de se fazer com ferramentas de mapeamento objeto/relacional, até porque a maioria dos engines de relatório tem um tratamento especial pra result sets, mas usar o Hibernate pra isso pode aumentar a performance se você habilitar o cache.

Não existe tampa que caiba em todas as garrafas meu amigo, cada um faz o que acha que funciona melhor, se você não tem trabalho usando JDBC continue usando.

P

Não é questão do trabalho de usar jdbc… prezo muito escrever menos código, reutilização, flexibilidade e gostaria de algo que se eu precisar recuperar 30.000 registros do banco toda hora, me facilitasse…

Mauricio_Linhares

Na boa, quem é que precisa recuperar 30.000 registros a toda hora? Será que realmente tem uma alma que consegue analizar 30.000 registros em uma hora?

Cuidado pra não criar necessidades que não existem.

P

Realmente eu chutei muito alto… mas aqui na empresa tem pessoas que consultam uma grande quantidade de informações a todo momento… fora que é toda hora alguém cadastrando, consultando e alterando… queria realmete algo que pudesse me oferecer flexibilidade tanto no desenvolvimento quanto na manutenção…

kina

Maurício Linhares:

Na boa, quem é que precisa recuperar 30.000 registros a toda hora? Será que realmente tem uma alma que consegue analizar 30.000 registros em uma hora?

Cuidado pra não criar necessidades que não existem.


Talvez para algum relatório ^^
Bem, acredito que nao sejamos nós que iremos decidir por você o que usar/ não usar.

Se você usar Hibernate leva totalmente “de gratis” um esquema de cache! Evitando assim acesso ao banco quando se tem o dado em memória (aumentanto a performance do seu aplicativo).

Não sei o que você precisa, muito menos a quantidade de pessoas que vão acessar, etc, etc, etc…

Mas com Hibernate você terá um ganho de produtividade, e caso haja algo que você não consiga realizar com ele, pode-se optar por fazer via JDBC, por exemplo ^^

Falou

kina

Manutenção é relativo.
Você pode usar a ferramenta que for, se você não tomar cuidado pode codificar algo monstro (no sentido de ruim) e ficar ruim para você arrumar depois.

Mauricio_Linhares

kina:
Maurício Linhares:

Na boa, quem é que precisa recuperar 30.000 registros a toda hora? Será que realmente tem uma alma que consegue analizar 30.000 registros em uma hora?

Cuidado pra não criar necessidades que não existem.


Talvez para algum relatório ^^

Eu acho as chances de uma coisa dessas acontecer muito pequena, principalmente porque um relatório vai ser avaliado por uma pessoa.

Isso poderia acontecer, por exemplo, quando alguém for retirar a lista de todos os produtos que uma empresa vende, mas isso não acontece o dia todo. Em uma rede de lojas aqui da Paraíba existem horários pra que certos relatórios possam ser retirados, porque eles causam MUITO trabalho para o banco e para o servidor Java, eles só podem ser retirados em horários espefícicos, que contam com pouco movimento.

E eles são feitos com JDBC puro!

Esse tipo de coisa tem que ser MUITO bem pensado antes de ser colocado no ar, nós não podemos simplesmente botar no sistema uma página que acessa alguns milhões de registros (como o caso dessa rede de lojas) pra ser aberta o dia todo por qualquer um, em quinze minutos o sistema todo cai.

F

Eu tinha um problema semelhante a esse, precisava fazer um cálculo que percorria uma tabela de (exatamente) 76.264 registros. Isso demorava mais de 1 hora mas, após a inserção de um ou dois índices no Banco de Dados(Interbase) minha pesquisa demorou apenas 11 s…, ou seja, percorri uma tabela de 76.264 registros em 11 s!!!Obs. Utilizo o framework JDO para persistência. :smiley:

pcalcado

Você está confundindo persistência com framework de persistencia. Persistir objetos é salvá-los em algum lugar, um SGBD, XML, serialização, CSV, caixinhas de lapis de cor, qualquer coisa.

Utilizando um SGBD, você pode contar com JDBC diretamente ou Hibernate/IBatis/Bali/TopLink/EJB/JDO/Qualquer Coisa que abstratia o JDBC pra você, então no fim tudo é JDBC. Sua pergutna é: vale a pena usar um framework?

Sempre depende do caso.

Se você está separando em camadas (e não estou falando de MVC) e deixando a parte de persistência em local próprio, não é tão difícil mudar ou perceber que uma tecnologia é mais adequada que outra.

Mauricio_Linhares

Manutenção é relativo.
Você pode usar a ferramenta que for, se você não tomar cuidado pode codificar algo monstro (no sentido de ruim) e ficar ruim para você arrumar depois.

Pois é, usar um framework pode facilitar, mas o resultado final vai depender de você :mrgreen:

Criado 28 de julho de 2005
Ultima resposta 28 de jul. de 2005
Respostas 15
Participantes 5