Hibernate-ähnliche Schicht für C ++

8

Die Verwendung einer DB mit C ++ ist ein echtes Durcheinander und es war erfrischend, als ich nach Java umzog, um ein einheitliches System zu verwenden, um die ganze Schicht wegzuspulen (aka Hibernate).

Es gibt ein paar abstrakte C ++ - Schichten für DBs, aber sie sind normalerweise herstellerspezifisch und nur eine dünne Schicht, die die echte C-API umhüllt. Hat irgendjemand etwas eher wie Hibernate für C ++ oder wissen von einer Gruppe oder einem Open-Source-Projekt, die diese Problemdomäne sucht.

    
Martin York 17.01.2009, 20:05
quelle

5 Antworten

7

Ich kenne keine C ++ - Bibliothek wie Hibernate, aber sicherlich gibt es nicht-herstellerspezifische Bibliotheken: SOCI und DTL

    
Vadim Ferderer 17.01.2009, 23:16
quelle
2

Ich fühle deinen Schmerz. Sie werden schnell separate Bibliotheken für den Datenbankzugriff, die XML-Verarbeitung, das Threading und alle anderen Anwendungen, die häufig benötigt werden, verwenden. Aus diesem Grund benutze ich oft Qt, das die häufigste Funktionalität bietet, die oft in Programmen benötigt wird (Datenbankzugriff, XML-Verarbeitung, Threading, GUI-Widgets usw.). Ihre SQL-Klassen sind ziemlich anständig und arbeiten mit vielen Datenbanken. Aber es abstrahiert SQL nicht wie viele Object-Relation-Mapper.

    
danieldk 18.01.2009 11:38
quelle
2

Wir haben eine Open-Source-Bibliothek mit dem Namen QHibernate entwickelt.

QHibernate ist ein Hibernate ORM-Port (Object Relation Mapping) für C ++ und Qt Framework. Aktuelle Version ist eine Proof of Concept-Arbeit. Es wird mit PostgreSQL 9.4 und Qt 5.4.1 verwendet.

Funktionen

  • Qt5
  • PostgreSQL
  • Klassenzuordnung xml
  • Klassenzuordnung xml
  • Hibernate-Konfigurations-XML
  • Eins-zu-viele, Eins-zu-eins, Viele-zu-eins Zuordnungen

Sie können einige Details, Quellen und Download-Links hier finden: QHibernate

    
ufukgun 28.01.2016 11:34
quelle
0

Wenn Sie C ++ mit .Net verwenden, verwenden Sie nhibernate. 2.0 entspricht in etwa dem Hibernate 3.0 und ist extrem robust.

    
Mark 17.01.2009 21:21
quelle
0

Ein anderer Ansatz ist ein C ++ - Objekt & lt; - & gt; XML-Mapping wie Codesynthese xsd Ich mochte nie den direkten Hibernate / Serialisierungs-Ansatz, den es zu viel bricht, wenn Sie jemals die Klasse ändern müssen.

    
Martin Beckett 30.07.2009 22:00
quelle