¿Utilizar JDBC o Hibernate? | Java

Cuando estamos creando una aplicación ya sea web o de escritorio por lo general es necesario conectarla a una base de datos para poder tener los datos así el programa finalice o la computadora se apague, obviamente podemos guardar los datos en un archivo de texto o una hoja de Excel pero no es lo más conveniente.

Para almacenar la información en la base de datos es necesario ejecutar consultas desde nuestro software hacia la DB que hayamos elegido como puede ser PostgreSQL, MySQL, SQLite, Oracle, etc. Sin embargo las consultas las podemos hacer manualmente (JDBC) o utilizando un Framework (Hibernate) de mapeo, ahora veremos algunas ventajas e inconvenientes que he investigado y experimentado al desarrollar con Java.

JDBC (Java Database Connectivity)

Ventajas

  • Ejecuta consultas a la base de datos mucho más rápido, y por lo general son aplicaciones mucho más rápidas a la hora de ejecutarlas.
  • Se ejecuta de manera limpia y tienes el control acerca de todo lo que realices ya sea INSERT, UPDATE, DELETE, SELECT, es decir sabes cómo realizas la consulta y que debe devolver.
  • Para aplicaciones pequeñas es una buena opción ya que no necesitas realizar demasiadas consultas y la dificultad de depuración puede ser de baja a media.

Desventajas

  • Las consultas muchas veces son específicas de cada gestor de base de datos y sería algo más complicado migrar a otra base de datos.
  • La mayoría de veces vas a tener una gran cantidad de líneas solo para ejecutar una consulta.
  • El desarrollo es mucho más demorado.

Hibernate

Ventajas

  • El desarrollo es mucho más rápido.
  • Puedes migrar a cualquier base de datos sin mucho problema.
  • Te encargas solo de la parte de programación y te olvidas de las consultas, por lo que es mucho más fácil el mantenimiento del software al tener solo la lógica.
  • Necesaria en aplicaciones grandes, donde las consultas son extensas.

Desventajas

  • Aplicaciones lentas comparadas con JDBC, tanto en acceso a los datos como la ejecución de la aplicación en sí; ya que los frameworks por lo general ejecutan JDBC mediante Reflection (clase propia de Java).
  • Tu no tienes control acerca de cómo el Framework ejecuta las consultas en la base de datos.
  • En aplicaciones pequeñas puede significar un gasto de recursos innecesario.
En conclusión para aplicaciones pequeñas donde no se requieran demasiadas consultas o tengas unas pocas tablas en la base de datos deberías usar JDBC, por otro lado para aplicaciones grandes donde manejan gran cantidad de información y tablas es totalmente necesario un Framework para agilizar el desarrollo y para después poder mantener el código.

Comentarios

Entradas populares