Hibernate как слой для C ++ - PullRequest
       22

Hibernate как слой для C ++

9 голосов
/ 17 января 2009

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

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

Ответы [ 5 ]

7 голосов
/ 18 января 2009

Я не знаю ни одной библиотеки C ++, такой как Hibernate, но, безусловно, есть библиотеки, не относящиеся к конкретным поставщикам: SOCI и DTL

3 голосов
/ 28 января 2016

Мы разработали библиотеку с открытым исходным кодом с именем QHibernate .

QHibernate - это Hibernate ORM (Object Relation Mapping) порт для C ++ и Qt Framework. Текущая версия является доказательством концептуальной работы. Используется с PostgreSQL 9.4 и Qt 5.4.1.

Особенности

  • Qt5
  • PostgreSQL
  • Отображение классов xml
  • Отображение классов xml
  • Конфигурация Hibernate xml
  • Отображения один-ко-многим, один-к-одному, многие-к-одному

Вы можете найти некоторые подробности, источник и ссылки для скачивания здесь: QHibernate

2 голосов
/ 18 января 2009

Я чувствую твою боль. Вы быстро будете использовать отдельные библиотеки для доступа к базе данных, обработки XML, потоков и всего остального, что обычно требуется приложениям. По этой причине я часто использую Qt, который обеспечивает наиболее распространенную функциональность, которая часто требуется в программах (доступ к базе данных, обработка XML, потоки, виджеты с графическим интерфейсом и т. Д.). Их классы SQL довольно приличные и работают со многими базами данных. Но он не абстрагирует SQL, как многие сопоставители объектных отношений.

0 голосов
/ 31 июля 2009

Другим подходом является сопоставление объекта C ++ <-> xml, подобное codeynthesis xsd
Мне никогда не нравился подход прямой гибернации / сериализации, он слишком сильно ломается, если вам когда-либо нужно изменить класс.

0 голосов
/ 18 января 2009

Если вы используете C ++ с .Net, тогда используйте nhibernate. 2.0 примерно такой же, как и в спящем 3.0, и чрезвычайно надежный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...