Hibernate, iBatis, JPA, …

¡ Menudo lío !

Siempre hemos programado nuestro código java contra base de datos en JDBC puro y duro. Llegamos a hacernos nuestro "equivalente" a herramientas como iBatis, pero usando siempre Hashtable para tener los resultados o hacer las inserciones y, desde luego, mucho más cutre que cualquiera de los anteriores. Eso sí, el nuestro construye sobre la marcha los paneles SWING y JTables para mostrar o modificar los resultados.

Sin embargo, ahora que me pongo a mirar un poco más en serio, veo multitud de herramientas similares que hacen cosas parecidas. Y ahí empieza la duda. ¿Cual usar?.

Hibernate parece el candidato más conocido y del que más se habla -al menos, eso me parece por lo que veo en los foros-. Sin embargo, en mis primeras pruebas, mis impresones no han sido muy buenas. Un sitio web relativamente caótico, unas Hibernatetools-middlegen más caóticas todavía. El plugin para eclipse no me ha funcionado. Veo que la "ingeniería inversa" de sacar los xml a partir de tablas creadas da problemas. Al menos a mí, con la primera base de datos seria que pruebo, los xml generados por la herramienta, luego dan error en Hibernate cuando trata de leerlos. Y veo que está demasiado pensado para Web y JEE. Sin embargo, la forma de trabajo desde código Java parece la más elegante y cómoda.

Ayer me puse a jugar un poco con iBatis. No llega, desde luego, al nivel de Hibernate, pero se le acerca. Además, en mis primeras pruebas me ha causado mejor impresión. El sitio web parece mejor organizado, las pruebas que he hecho me han funcionado rápido. Tiene un plugin abator de eclipse para a partir de tablas creadas en base de datos generar los beans, los DAO y los .xml de configuración. Hoy haré pruebas con tablas más en serio.

Y ayer también, me puse a mirar por encima JPA. Veo que también trabaja con beans simples de java -los llamans POJOs- que hace persistentes, al igual que Hibernate. Así que es otra que tendré que  mirar.

Y sigo con la duda. ¿Cual usar?. Cada vez estoy más convencido de que deberíamos parar todos los proyectos un par de meses para dedicarnos a hacer pruebas con este tipo de cosas y otros frameworks que hay por ahí. Seguro que recuperamos el tiempo con creces.

Esta entrada fue publicada en Herramientas, Hibernate, iBATIS. Guarda el enlace permanente.

7 respuestas a Hibernate, iBatis, JPA, …

  1. Blaxter dijo:

    JPA no es «otra» cosa, es la capa de persistencia estándar que se ha introducido en j2ee 5 para solventar este común problema. Hibernate implementa esta definición (y hace otras cosas no-estándar).

    No te puedo decir ni aconsejar nada porque no he usado ninguna de estas herramientas, pero diría que la mejor solución es trabajar con JPA usando la implementación que sea (que supongo que habrá más).

  2. DaniP dijo:

    Hola,

    Parece increíble, pero a veces esa podría ser la MEJOR solución: parar máquinas y que todo el mundo se centre en una forma en la que enfocar este tipo de cosas; para que una vez decidido el marco de actuación todos tengan claro qué hacer y cómo hacerlo de hoy en adelante.

    Lo malo es que eso de parar la producción no está muy bien visto de cara a que dejen de entrar los cheques de los clientes….

    Ánimo !!!

  3. Jordi dijo:

    Hola,

    Mi voto es para JPA. Usaba Hibernate pero ahora ya lo hago todo con JPA, lo encuentro mucho más simple y de paso es un estándar.

    Referente a plugins i demás, me gusta crear este tipo de cosas «a mano».

    Un saludo.

  4. Chuidiang dijo:

    Hola:

    Estoy viendo que JPA no es más que una especificación. ¿Qué implementación usas?

    Se bueno.

  5. Jordi dijo:

    Hola,

    Utilizo la de Hibernate.

  6. santiago dijo:

    Hola.

    Después de bucear en internet y no encontrar información, he realizado yo mismo unas pruebas y he publicado un artículo con una comparativa de implementaciones de JPA (Hibernate, Toplink, Eclipselink y Openjpa) que puede que resulte interesante:

    http://terrazadearavaca.blogspot.com/2008/12/comparativa-de-implementaciones-de-jpa.html

    Un saludo.

  7. Luis dijo:

    Hola:

    Actualmente estoy trabajando con Hibernate utlizando Annotations y es bastante facil y Simple. Creo que es una implementacion de Hibernate con JPA.

    Saludos

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.