Tengo un programa 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 programa. Hibernate parece requerir mucha configuración y es excesivo para lo que necesito. ¿Cuáles son alternativas ligeras a Hibernate?¿Alternativa ligera a Hibernate?
Respuesta
Hibernate requiere una configuración próxima a cero si utiliza anotaciones. ¡Incluso puede descubrir automáticamente frijoles mapeados en el classpath! No veo ninguna alternativa desde el punto de vista de la simplicidad y.
También puede exponerse como JPA, que es (en mi humilde opinión) aún más simple.
junto a cero no es cero. – njzk2
también necesita muchas bibliotecas externas intente usarlo en Android: P – sherif
Intenté encontrar una alternativa más simple a Hibernate. En un proyecto personal, utilicé MyBatis (qué nombre tan terrible). Fue mucho más trabajo que Hibernate. Hibernate realmente ahorra mucha codificación SQL y ayuda con las relaciones entre padres e hijos. También miré algunos ORM's de estilo ActiveRecord para Java. Ninguno parecía maduro o más fácil que Hibernate. Entonces, voy a volver a Hibernate. – devdanke
Aún requiere configuración XML, pero eche un vistazo a MyBatis (formerly iBatis).
Ahora es MyBatis el que queda: http://www.mybatis.org/ –
Creo que el XML en i/MyBatis es en realidad una ventaja ya que mantiene las consultas complicadas en un formato que se puede copiar fácilmente a una consola SQL para probar. –
iBatis es muy liviano. Puede definir y controlar más fácilmente su asignación de SQL a objeto. –
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.
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?
Apache Commons DBUtils toma gran parte del gruntwork repetitivo de la programación 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 programación JDBC repetitivas. Sin duda es liviano.
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, buen soporte de muelle, generador de consultas flexibles, etc ..
¡OrmLite realmente se ve prometedor! Pero, ¿este proyecto aún está vivo? No hay una nueva versión por más de un año, no hay respuesta para atraer solicitudes/problemas en Github. – Stefan
La versión 5.0 se lanzó en junio de 2016. –
jOOQ barcos con una fluidez DSL simulando SQL directamente en Java como un efecto secundario de sus objetivos principales, que son:
- Fuente de generación de código
- soporte completo para SQL estándar, incluyendo las características del lenguaje SQL, como los sindicatos, selecciona anidadas, todos los tipos de combinaciones, aliasing (por ejemplo, para autocombinaciones), etc
- Amplio soporte para SQL no estándar incluyendo UDT , procedimientos almacenados, funciones específicas del proveedor, etc.
Lea sobre jOOQ en este artículo: http://java.dzone.com/announcements/simple-and-intuitive-approach, o visite el sitio web directamente: http://www.jooq.org
(exención de responsabilidad, trabajo para la compañía detrás de jOOQ)
jOOQ rocks! Implementamos un servicio ETL a gran escala con él, y no podríamos estar más contentos. He usado iBATIS, y jOOQ ofrece todas las ventajas de SQL de bajo nivel sin las resmas de XML y la falta de seguridad del tipo. – spieden
Olvidé mencionar una de las mejores características de jOOQ: las consultas complejas y/o generadas dinámicamente se pueden ensamblar de forma controlada y verificada por el compilador de Java, lo que le ahorra todos los errores de sintaxis ambiguos arrojados y proporciona tiempo de compilación Cobertura de regresión para cuando el esquema cambia debajo de usted. – spieden
JOOQ es increíble, pero obviamente ahora no es gratis para Oracle y Sybase, por lo que muchas personas están evitando este marco y están usando MyBatis – Makky
puedo proponer Apache imperio-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 segura y simple de datos. En comparación con la mayoría de las otras soluciones, como p.Implementaciones de Hibernate, TopLink, iBATIS o JPA, Empire-db toma un enfoque considerablemente diferente, con un enfoque especial en seguridad en tiempo de compilació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);;
Si se utiliza una base de datos relacional no es obligatorio, dan db4o intentarlo.
marco ORMAN también es bueno. https://github.com/ahmetalpbalkan/orman
Documentación: https://github.com/ahmetalpbalkan/orman/wiki
Comparación: https://github.com/ahmetalpbalkan/orman/wiki/Why-orman-is-better-than-other-orms-for-you%3F
Este debe ser todo el camino en la parte superior. ¡Oscila! – qwertzguy
creé sormula como alternativa al peso pesado del ORM. Está preparado para CRUD, es compatible con POJO, es fácil de usar, configurar y comprender. El uso de configuración cero es posible. www.sormula.org
que podría ser un poco tarde a la fiesta, pero liberado ActiveJDBC en 2010, que es una implementación ORM de Active Record, es más de 10 veces más ligero que el de hibernación en las dependencias, al menos dos veces más rápido en tiempo de ejecución y requiere cero configuración o anotaciones.
Kiteframework es también un marco orm muy ligero. Proporciona casi todas las operaciones de DB con configuraciones mínimas.
http://deipakgarg.github.com/Kite-ORM/
Revelación: yo soy el autor de este proyecto
¡Bienvenido a Stack Overflow! ¡Gracias por publicar tu respuesta! Asegúrese de leer detenidamente [Preguntas frecuentes sobre autopromoción] (http://stackoverflow.com/faq#promotion). También tenga en cuenta que * se requiere * que publique un descargo de responsabilidad cada vez que se vincula a su propio sitio/producto. –
no está en desarrollo, no hay un nuevo lanzamiento actual del autor, la última versión esperada fue en 2012. – Barun
- 1. Alternativa ligera a Sammy.js
- 2. WebRequest "HEAD" alternativa ligera
- 3. Alternativa ligera a Manual/AutoResetEvent en C#
- 4. ¿Hay alguna alternativa ligera a gSOAP?
- 5. Alternativa ligera a jQuery para la selección de clase/ID
- 6. alternativa ligera al complemento de autocompletar jquery-ui?
- 7. Hibernate Search, Lucene o cualquier otra alternativa?
- 8. Uso de typedef fuerte como una alternativa más ligera a la biblioteca Boost Parameter?
- 9. ¿Se puede utilizar Can Messenger (alternativa ligera a AIDL) para la comunicación entre aplicaciones?
- 10. ¿Hay alguna alternativa ligera a jQuery Mobile para solo las transiciones de página?
- 11. Biblioteca ligera de búsqueda difusa
- 12. Migración ligera de NSPersistentDocument
- 13. Técnica de notificación ligera
- 14. Buscando una alternativa a JasperReports
- 15. Control de fuente ligera
- 16. alternativa a strdup
- 17. ¿Alternativa a BerkeleyDB?
- 18. Alternativa multiplataforma a COM
- 19. alternativa a String.Replace
- 20. Alternativa a FolderBrowserDialog
- 21. alternativa seleccionable a JOptionPane.showMessageDialog
- 22. alternativa a MediaStore.Playlists.Members.moveItem
- 23. Alternativa a Graphics.ScaleTransform
- 24. ¿Alternativa a FogBugz?
- 25. Alternativa a header_remove
- 26. PHP alternativa a session_is_registered
- 27. Alternativa a Process.Start()
- 28. ¿Alternativa a PHP QuickForm?
- 29. Alternativa a IETester
- 30. Alternativa a HtmlUnit
Puede comprobar alternativas, junto con un ejemplo de uso (y ejemplo de configuración con la primavera) aquí: https://github.com/bwajtr/ java-persistence-frameworks-comparison –