sql >> Base de Datos >  >> RDS >> Mysql

JDBC VS Hibernación

Responder a los problemas enumerados anteriormente:

1. Hibernate no puede conectarse con una base de datos "Existente". Siempre trata de crear uno propio.

Esto está mal. Hibernate puede conectarse a una base de datos existente, y no siempre intenta recrearla. Solo debe desactivar el parámetro como hbm2ddl. auto .

2. Nuestra base de datos puede acceder por la misma aplicación que se encuentra en diferentes plataformas (nube, servidor, VPS, computadora personal). Hibernate puede generar problemas debido a su almacenamiento en caché en esta situación.

Hibernate tiene un caché ajustable, por lo que esto tampoco es un problema.

3. Nunca nos gusta dar el "trabajo de creación de tablas" al código Java. Creamos tablas manualmente, siempre.

No hay problema. Consulte la página 1 anterior. Además, hay varias bibliotecas convenientes para la creación y actualización de tablas indirectas (por ejemplo, liquibase ) que se puede usar perfectamente junto con hibernate.

4. Es posible que tengamos que usar sentencias SQL muy largas y complejas. La última vez usamos una declaración con más de 150 líneas, uniendo más de 20 tablas. Dudamos si enfrentaremos problemas en esto cuando se trata de Hibernate.

Siempre puede usar llamadas JDBC directas e invocar consultas SQL nativas a través de hibernación, si es necesario.

5. Nuestro código SQL es agradable y estándar. El código generado por Hibernate parece estar un poco sucio para nosotros.

Una vez más, si tiene que invocar algún código SQL complicado de lógica en lugar de la generación automática de hibernación, puede hacerlo.

6. Siempre usamos MySQL. Nunca use ninguna otra base de datos.

No es un problema en absoluto. Hibernate tiene soporte especial para dialectos de MySQL:org.hibernate.dialect.MySQLDialect .

7. La aplicación que creamos requiere la máxima seguridad, relacionada con la medicina. Si se filtra al menos un registro de datos, hemos terminado.

Los problemas de seguridad no están relacionados con las técnicas ORM. Hibernate es solo una capa lógica y conveniente orientada a objetos entre las llamadas JDBC de la base de datos pura y las herramientas de los programadores. No influye de alguna manera en la seguridad de la red común.