Ich frage mich, welche Art von Persistenz-Lösungen gibt es für C ++ mit einer SQL-Datenbank? Gibt es neben den üblichen SQL-Funktionen (und dem Kapselung des Datenzugriffs auf DAOs oder ähnlichem) auch andere (allgemeinere) Lösungen?
Wie einige allgemeine Bibliotheken oder Frameworks (etwas wie Hibernate & amp; co für Java und .NET) oder etwas anderes? (Etwas, an das ich nicht einmal gedacht habe, kann auch gerne vorgeschlagen werden)
EDIT: Ja, ich habe mehr nach einer ORM-Lösung oder ähnlichem gesucht, um SQL-Abfragen und die Beziehungen zwischen Tabellen und Objekten zu behandeln, als für die db-Engine selbst. Danke für alle Antworten trotzdem!
Es klingt, als ob Sie nach einem ORM suchen, so dass Sie sich nicht mit manuellem SQL-Code beschäftigen müssen.
Es gibt einen Post hier , der über ORM-Lösungen für C ++ geht.
Sie haben auch nicht den Typ der Anwendung erwähnt, die Sie schreiben, wenn es sich um eine Desktop-Anwendung, eine mobile Anwendung oder eine Server-Anwendung handelt.
Mobil: Am besten verwenden Sie SQLite als Datenbankmodul, da es eingebettet werden kann und einen geringen Platzbedarf hat.
Desktop-App: Sie sollten hier noch SQLite verwenden, aber Sie haben auch die Option, dass die meisten Desktop-Anwendungen eine ständige Verbindung zum Internet haben. In diesem Fall sollten Sie einen Netzwerk-Server für diese Aufgabe bereitstellen. Ich schlage vor, Apache + MySQL + PHP zu verwenden und ein leichtes ORM wie Outlet-ORM zu verwenden und dann Standard-HTTP-Nachrufe zu verwenden um auf Ihre Ressourcen zuzugreifen.
Server App: Sie haben hier viele weitere Optionen, aber ich empfehle immer noch Apache + MySQL + PHP + ORM, weil ich finde, dass es viel einfacher ist, diesen Layer in einer Skriptsprache zu pflegen als in C ++.
SQLite + Hiberlite ist ein schönes und vielversprechendes Projekt. obwohl ich hoffe, dass es sich aktiver entwickelt. siehe http: // code.google.com/p/hiberlite /
Ich verwende MYSQL oder SQLite.
MYSQL: Stellt eine serverbasierte Datenbank bereit, mit der sich Ihre Anwendung dynamisch verbinden muss.
SQLite: Stellt eine In-Memory- oder Datenbankdatei bereit.
Die Verwendung der Arbeitsspeicher-DB ist nützlich für eine schnelle Entwicklung, da das Einrichten und Konfigurieren eines DB-Servers nur für ein einzelnes Projekt eine große Aufgabe ist. Aber sobald Sie einen DB-Server laufen haben, ist es genauso einfach, das zu verklagen.
Im Speicher ist DB nützlich, um kleine DB wie Konfiguration etc. zu halten. Während für größere Datenmengen ein DB-Server wahrscheinlich praktischer ist.
Tags und Links sql c++ database persistence frameworks