Использование БД с C++ - настоящий беспорядок, и это освежило меня, когда я перешел на Java, чтобы иметь возможность использовать единую систему для абстрагирования всего слоя (также известного как Hibernate).
Существует несколько абстрактных слоев C++ для БД, но они обычно зависят от поставщика и представляют собой лишь тонкий слой, который обертывает настоящий C API. Кто-нибудь сталкивался с чем-то более похожим на спящий режим для C++ или знал о группе или проекте с открытым исходным кодом, который рассматривает эту проблемную область.





Если вы используете C++ с .Net, используйте nhibernate. 2.0 примерно такой же, как hibernate 3.0, и чрезвычайно надежен.
Я чувствую твою боль. Вы быстро будете использовать отдельные библиотеки для доступа к базе данных, обработки XML, многопоточности и всего остального, что обычно требуется приложениям. По этой причине я часто использую Qt, который обеспечивает наиболее общие функции, которые часто требуются в программах (доступ к базе данных, обработка XML, многопоточность, виджеты графического интерфейса и т. д.). Их классы SQL довольно приличны и работают со многими базами данных. Но он не абстрагируется от SQL, как многие преобразователи объектных отношений.
скоро стандартные ответы на вопрос будут включать не только «boost», но и «Qt», ха-ха. +1
Другой подход - это отображение объекта C++ <-> xml, например codeynthesis xsd
.
Мне никогда не нравился прямой подход к гибернации / сериализации, он слишком сильно ломается, если вам когда-нибудь понадобится изменить класс.
Мы разработали библиотеку с открытым исходным кодом под названием QHibernate.
QHibernate - это порт Hibernate ORM (Object Relation Mapping) для C++ и Qt Framework. Текущая версия является доказательством концептуальной работы. Он используется с PostgreSQL 9.4 и Qt 5.4.1.
Функции
Вы можете найти некоторые подробности, источник и ссылки для скачивания здесь: QHibernate
Теперь существует полностью написанный на C++ слой Hibernate. Вы можете найти его на github по адресу edwig / CXHibernate. Поставляется с полной письменной документацией.
Вы видели: sqlapi.com