2009-01-17 12 views
8

Usar una base de datos con C++ es un verdadero desastre y fue refrescante cuando me mudé a Java para poder utilizar un sistema unificado para abstraer toda la capa (también conocido como Hibernate).Hibernar como capa para C++

Hay un par de capas abstractas de C++ para bases de datos, pero generalmente son específicas del proveedor y solo una capa delgada que envuelve la API C real. ¿Alguien ha encontrado algo más parecido a Hibernate para C++ o sabe de un grupo o proyecto de código abierto que está mirando este dominio del problema?

+0

¿Alguna vez ha visto: http://www.sqlapi.com/ – gideon

Respuesta

7

no sé de cualquier biblioteca de C++ como Hibernate, pero ciertamente no hay proveedores librerías específicas: SOCI y DTL

0

Si está utilizando C++ con .Net, utilice nhibernate. 2.0 es aproximadamente lo mismo que hibernate 3.0 y es extremadamente robusto.

2

Siento su dolor. Rápidamente utilizará bibliotecas separadas para el acceso a la base de datos, el procesamiento XML, el enhebrado y todo lo demás que comúnmente necesitan las aplicaciones. Por esta razón, a menudo utilizo Qt, que proporciona la funcionalidad más común que a menudo se necesita en los programas (acceso a la base de datos, procesamiento XML, subprocesos, widgets de GUI, etc.). Sus clases SQL son bastante decentes y funcionan con muchas bases de datos. Pero no abstrae SQL como muchos mapeadores de relaciones de objeto.

+1

, las respuestas estándar a la pregunta no solo incluyen "impulso" sino también "Qt" " jaja. +1 –

0

Otro enfoque es un objeto de C++ < -> mapeo XML como codesynthesis xsd
nunca me gustó el enfoque de hibernación/serialización directa se rompe demasiado si alguna vez tiene que cambiar la clase.

2

Desarrollamos una biblioteca de código abierto llamada QHibernate.

QHibernate es un puerto Hibernate ORM (Asignación de relación de objetos) para C++ y Qt Framework. La versión actual es una prueba de trabajo conceptual. Se usa con PostgreSQL 9.4 y Qt 5.4.1.

Características

  • QT5
  • PostgreSQL
  • xml mapeo Clase
  • xml mapeo Clase
  • Hibernate configuración xml
  • de uno a muchos, uno-a-uno, muchos -to-one mappings

Puede encontrar algunos detalles, fuente y enlaces de descarga aquí: QHibernate