Hibernate ou Instruções SQL?

Fala galerinha !!!

Gostaria da opinião de vcs …

Qual a vantagem e/ou desvantagem de usar o Hibernate … e vantagem e/ou desvantagem de usar Instruções SQL ?

Pelo que eu vi … o uso do Hibernate é para “fugir” das glamurosas instruções SQL … Mas estou vendo que o Hibernate está tão difundido na liguaguem java …

Então eu gostaria de saber de vocês … oque se ganha e oque se perde no uso do Hibernate … ou das proprias instruções SQL.

“A utilização de código SQL dentro de uma aplicação agrava o problema da
independência de plataforma.
O Hibernate abstrai o código SQL da nossa aplicação e permite escolher o tipo
de banco de dados enquanto o programa está rodando, permitindo mudar sua base
sem alterar nada no seu código Java.
Além disso, o Hibernate permite criar suas tabelas do banco de dados de um
jeito bem simples, não se fazendo necessário todo um design de tabelas antes de
desenvolver seu projeto que pode ser muito bem utilizado em projetos pequenos.
Já projetos grandes onde o plano de ação padrão tomado pelo Hibernate não
satisfaz as necessidades da empresa (como o uso de select *, joins etc), ele possui
dezenas de otimizações que podem ser feitas para atingir tal objetivo.”

Ou seja… vc se livra do SQL mas fica dependente do HSQL…

Dê uma olhada no Ibatis

Mas veja, se vc tiver desenvolvendo para uma base de dados bem projetada que respeite todos os conceitos de modelagem.

O uso de instruções SQL … é claro (imaginado que as intruções foram implentadadas fora da aplicação) usando a técnica de “hardcoding”, não iria mudar em nada minha aplicação.

Então eu acabo vendo o Hibernate como modismo que está sendo usando para fugir das instruções SQL.

E e qdo eu falo isso, eu estou indo de contra a “maré” … rsss

Pq agora vejo q muita gente usa o Hibernate, pq fulano de tal usa, ou empresa X ou Y agora está usando.

Na minha opinião o hibernate seria mais usadao para grandes  e médias aplicações onde performace não entra muito em foco, pois o hibernate utiliza muito a classe reflection. Possui também uma certa restrição quanto ao uso de algumas operações e modelagens com bancos de dados, como o uso de chaves compostas.
Ele se torna muito bom quanto ao uso de conceitos patterns, amplamente utilizado em java.

Espero que tenha ajudado um pouco.
Abração.

eu to numa dúvida desgraçada qto a isso tb, usar ou não hibernate…
a questão é q o sistema q vou começar a fazer é um BI e possui várias consultas c/ frases sql gigantes e complexas, além de processamentos e cálculos no banco de dados através de procedures (atualmente o sistema está em delphi e sql server, mas pretendemos mudar pra java e postgreSQL)

minha dúvida é se c/ o hibernate conseguirei fazer todas as consultas complexas que precisar s/ prejudicar a performance.

Procura no fórum que isso ja foi muito discutido e também no próprio site do Hibernate.

Mas utilizando o Hiberante, além de vc diminuir sua quantidade de códigos, deixar um padrão mais bonitinho e etc, vc também ganha em performance e outros detalhes. O hibernate já implementa esquema de cache, load balance e etc. Como eu disse, no site do Hibernate e aqui no fórum já falaram muito disso, e outra, é muito mais facil fazer um comando dao.insert(classe) do que fazer aquela instrução SQL gigantesca :wink:

[quote=macfly2500]Ou seja… vc se livra do SQL mas fica dependente do HSQL…

Dê uma olhada no Ibatis
[/quote]

Já Viu o Criteria do Hibernate ?

[quote=JohnnyDurden] Na minha opinião o hibernate seria mais usadao para grandes e médias aplicações onde performace não entra muito em foco, pois o hibernate utiliza muito a classe reflection. Possui também uma certa restrição quanto ao uso de algumas operações e modelagens com bancos de dados, como o uso de chaves compostas.
Ele se torna muito bom quanto ao uso de conceitos patterns, amplamente utilizado em java.

Espero que tenha ajudado um pouco.
Abração.
[/quote]

É o contrário, o Hibernate bem configurado, com uso de cache, vai ficar mais rápido.
Quanto a chave composta, qual é esta restrição ?

Bom pessoal, eu estou fazendo minha mono com o hibernate. To quebrando a cabeça com algumas coisas, pq não se aprende nada do dia pra noite…
Soh q eu não gostei muito. Me pareceu um pouco pesadão…
Tenho mais experiência com Delphi, e em minhas aplicações em Delphi eu procuro usar instruções sql, primeiro pq eh mais rápido e depois pq posso “reaproveitar” clientdatasets pra fazer estas consultas. Mas isso não vem ao caso.
Optei pelo hibernate para poder ter mais agilidade na programação. Por esse lado eh mto bom.
Mas eu penso que não seria bom usar o hibernate com tabelas com muitos dados. Pelo que percebi ele traz abre todas as tabelas logo que abre o sistema. A meu ver isso eh desnecessário e faz com q a aplicação fique muito lenta.
Hoje soh estou fazendo minha mono em java, mas pretendo programar mais coisas. E futuramente vou usar código sql na minha implementação, visto que tenho bons resultados com o mesmo em Delphi.
Resumindo : eu PREFIRO código sql.
Sei que a maioria dos desenvolvedores Java critica isso, tanto quanto uma aplicação “que não trabalha na web”.
Mas eh questão de preferência.
flw povo.

[quote=hjmarcon]
Mas eu penso que não seria bom usar o hibernate com tabelas com muitos dados. Pelo que percebi ele traz abre todas as tabelas logo que abre o sistema. A meu ver isso eh desnecessário e faz com q a aplicação fique muito lenta.
flw povo.[/quote]

Totalmente desnecessário, por isto, tem o lazy.

[quote=mauro_schneider][quote=macfly2500]Ou seja… vc se livra do SQL mas fica dependente do HSQL…

Dê uma olhada no Ibatis
[/quote]

Já Viu o Criteria do Hibernate ?[/quote]

Sim e dai??
E o resultTransformer vc já viu??

.

Dê uma olhada no Ibatis que talvez possa lhe ajudar…

silva.fernandes,

O hibernate facilita e muito o desenvolvimento…

Na minha opinião, desenvolver usando diretamente JDBC é coisa de louco (salvo necessidades pontuais, onde realmente não se possa fugir)

hjmarcon,

O Hibernate é altamente configurável… vc consegue um nível de controle muito maior do que você conseguiria em Delphi.

O que acontece é que para utilizar (e otimizar) corretamente o Hibernate você precisa ir além do básico. Mas quando você passa a dominar os seus segredos você vai perceber o quanto ele é bom.

[quote=macfly2500][quote=mauro_schneider][quote=macfly2500]Ou seja… vc se livra do SQL mas fica dependente do HSQL…

Dê uma olhada no Ibatis
[/quote]

Já Viu o Criteria do Hibernate ?[/quote]

Sim e dai??
E o resultTransformer vc já viu??[/quote]

E daí que você não fica dependente do HSQL…