¿Alternativa ligera a Hibernate?

Tengo un progtwig java de usuario único que me gustaría tener datos almacenados en una base de datos liviana como Derby o Sqlite. Me gustaría utilizar una capa de abstracción de datos en mi progtwig. Hibernate parece requerir mucha configuración y es excesivo para lo que necesito. ¿Cuáles son alternativas ligeras a Hibernate?

Hibernate requiere configuración próxima a cero si usa anotaciones. ¡Incluso puede descubrir automáticamente frijoles mapeados en el classpath! No veo ninguna alternativa desde el punto de vista de la simplicidad y el poder.

También puede exponerse como JPA, que es (en mi humilde opinión) aún más simple.

Mi biblioteca ORMLite es una de esas alternativas. Es compatible con MySQL, Postgres, Microsoft SQL Server, H2, Derby, HSQLDB y Sqlite, y se puede extender fácilmente a otros. Utiliza anotaciones para configurar clases, buena compatibilidad con Spring, generador de consultas flexible, etc.

Todavía requiere configuración XML, pero eche un vistazo a MyBatis (anteriormente iBatis) .

jOOQ se envía con un DSL fluido que simula SQL directamente en Java como un efecto colateral para sus objectives principales que son:

  • Generación de código fuente
  • Soporte completo para SQL estándar, incluidas las características del lenguaje SQL, como UNION, SELECT nesteds, todos los tipos de JOIN, aliasing (por ejemplo, para autocombinaciones), etc.
  • Amplia compatibilidad con SQL no estándar, incluidos UDT, procedimientos almacenados, funciones específicas del proveedor, etc.

Lea acerca de jOOQ en este artículo: http://java.dzone.com/announcements/simple-and-intuitive-approach , o visite el sitio web directamente: http://www.jooq.org

(Descargo de responsabilidad, trabajo para la compañía detrás de jOOQ)

Puedes echar un vistazo a Ebean ORM . – Sin sesiones – la carga diferida solo funciona – API más simple para usar y aprender.

Apache Commons DBUtils toma gran parte de la rutina repetitiva de la progtwigción de JDBC. Requiere poca configuración y es fácil de aprender. No es un marco ORM (en la forma en que Hibernate y otros marcos mencionados aquí) pero automatiza la asignación de columnas SELECT a los campos miembros de Java, así como otras tareas de progtwigción JDBC repetitivas. Sin duda es liviano.

Cayenne me ha servido bien. Relativamente fácil de entender y ponerlo en funcionamiento. Encuentro la parte de ingeniería inversa particularmente encantadora. La configuración se puede hacer con una GUI.

Puedo proponer apache empire-db. http://incubator.apache.org/empire-db/

Apache Empire-db es un componente de persistencia de datos relacionales de código abierto que permite la definición de consultas dinámicas independientes del proveedor de bases de datos, así como la recuperación y actualización de datos segura y simple. Comparado con la mayoría de las otras soluciones, como las implementaciones Hibernate, TopLink, iBATIS o JPA, Empire-db toma un enfoque considerablemente diferente, con un enfoque especial en seguridad en tiempo de comstackción , redundancias reducidas y productividad mejorada del desarrollador.

Un ejemplo:

// Define the query DBCommand cmd = db.createCommand(); DBColumnExpr EMPLOYEE_FULLNAME= db.EMPLOYEES.LASTNAME.append(", ") .append(db.EMPLOYEES.FIRSTNAME).as("FULL_NAME"); // Select required columns cmd.select(db.EMPLOYEES.EMPLOYEE_ID, EMPLOYEE_FULLNAME); cmd.select(db.EMPLOYEES.GENDER, db.EMPLOYEES.PHONE_NUMBER); cmd.select(db.DEPARTMENTS.NAME.as("DEPARTMENT")); cmd.select(db.DEPARTMENTS.BUSINESS_UNIT); // Set Joins cmd.join(db.EMPLOYEES.DEPARTMENT_ID, db.DEPARTMENTS.DEPARTMENT_ID); // Set contraints and order cmd.where(EMP.LASTNAME.length().isGreaterThan(0)); cmd.orderBy(EMP.LASTNAME);; 

Podría llegar un poco tarde a la fiesta, pero lancé ActiveJDBC en 2010, que es una implementación ORM del patrón ActiveRecord, es más de 10 veces más ligero que Hibernate en dependencias, al menos dos veces más rápido en tiempo de ejecución, y no requiere configuración o anotaciones

Es posible que desee echar un vistazo a prevayler (en sourceforge). Un enfoque de persistencia algo más ligero. ¿O estabas pensando en hacer reportes contra el DB?

Si el uso de una base de datos relacional no es obligatoria, pruebe db4o.

Creé sormula como alternativa a los ORM pesados. Está preparado para CRUD, es compatible con POJO, es fácil de usar, configurar y comprender. El uso de configuración cero es posible. http://www.sormula.org

Kiteframework es también un framework orm muy ligero. Proporciona casi todas las operaciones de DB con configuraciones mínimas.

http://deipakgarg.github.com/Kite-ORM/

Divulgación: soy el autor de este proyecto