Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] JDBC, Ibatis o Hibernate

Estas en el tema de JDBC, Ibatis o Hibernate en el foro de Java en Foros del Web. Con JDBC me refiero al SQL "a pelo". ¿Alguien podría enseñarme las diferencias en rendimiento (consumo de memoria) entre estas 3 herramientas? Un saludo...
  #1 (permalink)  
Antiguo 18/12/2015, 04:15
 
Fecha de Ingreso: agosto-2013
Mensajes: 103
Antigüedad: 11 años, 3 meses
Puntos: 1
JDBC, Ibatis o Hibernate

Con JDBC me refiero al SQL "a pelo".

¿Alguien podría enseñarme las diferencias en rendimiento (consumo de memoria) entre estas 3 herramientas?

Un saludo
  #2 (permalink)  
Antiguo 18/12/2015, 15:47
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: JDBC, Ibatis o Hibernate

Yo no me centraría en el rendimiento para hacer mi elección salvo que trabajase en una aplicación gigantesca o de tiempo real, y dudo mucho que sea tu caso.

http://www.javaworld.com/article/207...-for-you-.html
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 20/12/2015, 07:15
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: JDBC, Ibatis o Hibernate

Hola:

Lo que comenta Xerelo es cierto, salvo aplicaciones muy específicas, no es probable que notes grandes diferencias entre uno y otro. Sin embargo, te comento algunas cosas

JDBC es la base. Hibernate e iBatis se basan en JDBC por debajo. Así que en principio, si se usa bien JDBC, siempre será más rápido. Sin embargo, un comentario, la gente de Hibernate y de iBatis son programadores expertos y hacen bien las cosas por debajo, por lo que posiblemente un programador no experto en JDBC usando Hibernate o iBatis consiga mejores resultados y más rápido que si se pone directamente con JDBC.

iBatis lo conozco poco, pero me parece algo intermedio entre usar JDBC puro y duro y usar Hibernate. Aunque iBatis se usa, yo creo que en general puestos a usar algo, la gente tiende más a JPA (Hibernate principalmente, pero hay más como Eclipselink y otros).

Hay dos usos muy concretos en los que no está muy aconsejado Hibernate.

Uno es si hay muchos ejecutables tocando base de datos y es muy importante que todos ellos tengan actualizados los datos al momento. Hibernate suele usar una caché en memoria para ahorrar y hacer más eficientes los accesos en disco, por lo que puede que algo que escribas en base de datos no esté realmente en ella hasta pasado un tiempo (pequeño) o si consultas, puede que no obtengas lo último que hay en base de datos. Este problema, por supuesto, no existe si sólo hay un ejecutable con Hibernate accediendo a base de datos o en el caso de que haya varios, todos ellos usen Hibernate y usan una caché distribuida (que las hay e Hibernate las soporta).

El otro caso es cuando se quieren hacer inserciones/updates muy rápido. Imagina que alguien te envía datos muy rápidamente de forma continuada y es muy importante grabarlos en base de datos a una velocidad igual o superior a como los estás recibiendo. Como te comentaba, JDBC bien usado en más eficiente que Hibernate, por lo que puede haber un momento en que si requieres una velocidad grande y continuada de inserciones sea mejor usar JDBC. Te pongo un ejemplo concreto de un proyecto en el que participé. Me enviaban las posiciones de cerca de 40000 barcos de forma continuada, 24 horas al dia, 365 días al año, y tenía que actualizarlas todas en base de datos, alrededor de 150/200 posiciones por segundo. Al final lo hice con JDBC en vez de hibernate, pero también es cierto que conseguí la mayor mejora en las inserciones "tuneando" mucho la configuración de la base de datos postgresql que había por debajo y usando discos de muchas rpm.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #4 (permalink)  
Antiguo 21/12/2015, 06:04
 
Fecha de Ingreso: agosto-2013
Mensajes: 103
Antigüedad: 11 años, 3 meses
Puntos: 1
Respuesta: JDBC, Ibatis o Hibernate

Muchas gracias a ambos. Es que en el trabajo usan las 3 tecnologías. Aunque estan comiendose poco a poco el JDBC y metiendo Ibatis (es "facil" cambiar JDBC por Ibatis, y si sabes ni te cuento, cosa que no es mi caso jajaja).
La verdad es que son bases de datos enormes (cojo registros de cada base de datos y los comparo con el de las otras bases de datos para ver los duplicados) y tardan lo suyo al realizar una consulta.
Como bien dices Ibatis es un intermedio, aunque no es un ORM como es el caso de Hibernate.
Por cierto sigo uno de tus tutoriales http://chuwiki.chuidiang.org/index.p...ple_con_Ibatis asi que doblemente gracias.

Un saludo

Última edición por Mechabits; 21/12/2015 a las 06:38

Etiquetas: hibernate, ibatis, jdbc, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:10.