我想知道带有 SQL 数据库的 C++ 有什么样的持久性解决方案?除了使用自定义 SQL 做事(以及封装对 DAO 的数据访问或类似的东西)之外,还有其他一些(更通用的)解决方案吗?
像一些通用库或框架(比如 Hibernate & co for Java 和 .NET)或其他东西?(我还没想到的也欢迎提出建议)
编辑:是的,我正在寻找更多的 ORM 解决方案或类似的东西来处理 sql 查询以及表和对象之间的关系,而不是数据库引擎本身。无论如何,感谢所有的答案!
我想知道带有 SQL 数据库的 C++ 有什么样的持久性解决方案?除了使用自定义 SQL 做事(以及封装对 DAO 的数据访问或类似的东西)之外,还有其他一些(更通用的)解决方案吗?
像一些通用库或框架(比如 Hibernate & co for Java 和 .NET)或其他东西?(我还没想到的也欢迎提出建议)
编辑:是的,我正在寻找更多的 ORM 解决方案或类似的东西来处理 sql 查询以及表和对象之间的关系,而不是数据库引擎本身。无论如何,感谢所有的答案!
听起来您正在寻找一些 ORM,这样您就不必费心手写 SQL 代码。
这里有一篇文章介绍了 C++ 的 ORM 解决方案。
您也没有提到您正在编写的应用程序类型,如果它是桌面应用程序、移动应用程序、服务器应用程序。
移动:最好使用 SQLite 作为数据库引擎,因为它可以嵌入并且占用空间小。
桌面应用程序:您仍然应该考虑在此处使用 SQLite,但您也可以选择大多数桌面应用程序始终连接到 Internet,在这种情况下,您可能需要为此任务提供网络服务器。我建议使用 Apache + MySQL + PHP 并使用轻量级 ORM,例如Outlet ORM,然后使用标准 HTTP post 调用来访问您的资源。
服务器应用程序:您在这里有更多选择,但我仍然建议使用 Apache + MySQL + PHP + ORM,因为我发现用脚本语言维护这一层比用 C++ 容易得多。
MySQL Connector/C++ 是 JDBC 4.0 的 C++ 实现
使用 MySQL Connector/C++ 的参考客户有: - OpenOffice - MySQL Workbench
了解更多: http: //forums.mysql.com/read.php?167,221298
SQLite + Hiberlite 是一个不错且有前途的项目。虽然我希望看到它更积极地发展。见 http://code.google.com/p/hiberlite/
我使用 MYSQL 或 SQLite。
MYSQL:提供您的应用程序必须动态连接到的基于服务器的数据库。
SQLite:提供内存或文件数据库。
使用内存数据库对于快速开发很有用,因为仅为单个项目设置和配置数据库服务器是一项艰巨的任务。但是,一旦您启动并运行了数据库服务器,就很容易提起诉讼。
在内存中,数据库对于保存小型数据库(例如配置等)很有用。而对于较大的数据集,数据库服务器可能更实用。
从这里下载: http
://dev.mysql.com/
从这里下载: http ://www.sqlite.org/