Постоянные решения для C++ (с базой данных SQL)?
Мне интересно, какие решения для персистентности существуют для C++ с базой данных SQL? В дополнение к работе с пользовательским SQL (и инкапсуляции доступа к данным в DAO или чем-то подобном), есть ли другие (более общие) решения?
Как некоторые общие библиотеки или фреймворки (что-то вроде Hibernate & co для Java и.NET) или что-то еще? (Что-то, о чем я даже не думал, также может быть предложено)
РЕДАКТИРОВАТЬ: Да, я искал больше для решения ORM или что-то похожее для обработки запросов SQL и отношений между таблицами и объектами, чем для самого движка БД. Спасибо за все ответы в любом случае!
5 ответов
Похоже, вы ищете какой-то ORM, чтобы вам не пришлось беспокоиться о написанном вручную коде SQL.
Здесь есть пост, в котором рассматриваются решения ORM для C++.
Вы также не упомянули тип приложения, которое пишете, если это настольное приложение, мобильное приложение, серверное приложение.
Mobile: лучше всего использовать SQLite в качестве движка базы данных, потому что он может быть встроен и занимает мало места.
Настольное приложение. Вам все равно следует подумать об использовании SQLite здесь, но у вас также есть возможность с большинством настольных приложений всегда подключаться к Интернету, и в этом случае вы можете предоставить сетевой сервер для этой задачи. Я предлагаю использовать Apache + MySQL + PHP и использовать легковесные ORM, такие как Outlet ORM, а затем использовать стандартные почтовые вызовы HTTP для доступа к вашим ресурсам.
Серверное приложение: у вас есть еще много вариантов, но я все же предлагаю использовать Apache + MySQL + PHP + ORM, потому что я считаю, что поддерживать этот слой на языке сценариев намного проще, чем в C++.
SQLite + Hiberlite - хороший и перспективный проект. хотя надеюсь увидеть его более активно развивающимся. см. http: // code.google.com/p/hiberlite/
MySQL Connector/C++ - это реализация CD для JDBC 4.0
Клиентами, использующими MySQL Connector/C++, являются: - OpenOffice - MySQL Workbench
Узнайте больше: http://forums.mysql.com/read.php?167,221298
Я использую MYSQL или SQLite.
MYSQL: Предоставляет серверную БД, к которой ваше приложение должно динамически подключаться.
SQLite: Предоставляет базу данных в памяти или файловой базе.
Использование БД в памяти полезно для быстрой разработки, поскольку настройка и настройка сервера БД только для одного проекта - большая задача. Но как только у вас есть запущенный сервер БД, подать в суд на него так же легко.
В памяти БД полезна для хранения небольших БД, таких как конфигурация и т. Д. В то время как для больших наборов данных сервер БД, вероятно, более практичен.
Загрузите отсюда: http://dev.mysql.com/
Загрузите отсюда: http://www.sqlite.org/