Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

JDBC VS Hibernação


Respondendo aos problemas listados acima:

1. O Hibernate não pode se conectar com um banco de dados "Existente". Ele sempre tenta criar um por conta própria.

Isto está errado. Hibernar pode conectar a um banco de dados existente e nem sempre tenta recriá-lo. Você só deve desligar o parâmetro como hbm2ddl. auto .

2. Nosso banco de dados pode acessar pelo mesmo aplicativo que está em diferentes plataformas (nuvem, servidor, VPS, Computador Pessoal). O Hibernate pode causar problemas devido ao cache nessa situação.

O Hibernate tem um cache ajustável, então isso também não é um problema.

3. Nós nunca gostamos de dar o "trabalho de criação de tabela" ao código java. Criamos tabelas manualmente, sempre.

Sem problemas. Veja p.1 acima. Além disso, existem várias bibliotecas convenientes para criação e atualização indireta de tabelas (por exemplo, liquibase ) que pode ser usado em conjunto com o hibernate perfeitamente.

4. Podemos ter que usar instruções SQL muito longas e complexas. Da última vez usamos um comando com mais de 150 linhas, juntando mais de 20 tabelas. Duvidamos se enfrentaremos problemas nisso quando se trata do Hibernate.

Você sempre pode usar chamadas JDBC diretas e invocar consultas SQL nativas via hibernação, se necessário.

5. Nosso código SQL é bom e padrão. O código gerado pelo Hibernate parece ser um pouco sujo para nós.

Novamente, se você tiver que invocar algum código SQL complicado de lógica em vez de hibernar gerado automaticamente - você pode fazê-lo.

6. Sempre usamos MySQL. Nunca use qualquer outro banco de dados.

Não um problema de todos. O Hibernate tem suporte especial ao dialeto MySQL:org.hibernate.dialect.MySQLDialect .

7. O aplicativo que criamos requer segurança máxima, relacionada à área médica. Se pelo menos um registro de dados vazar, terminamos.

Os problemas de segurança não estão relacionados às técnicas de ORM. Hibernate é apenas uma camada orientada a objetos lógica e conveniente entre chamadas JDBC de banco de dados puro e ferramentas de programadores. Não influencia de alguma forma na segurança da rede comum.