8

我想知道带有 SQL 数据库的 C++ 有什么样的持久性解决方案?除了使用自定义 SQL 做事(以及封装对 DAO 的数据访问或类似的东西)之外,还有其他一些(更通用的)解决方案吗?

像一些通用库或框架(比如 Hibernate & co for Java 和 .NET)或其他东西?(我还没想到的也欢迎提出建议)

编辑:是的,我正在寻找更多的 ORM 解决方案或类似的东西来处理 sql 查询以及表和对象之间的关系,而不是数据库引擎本身。无论如何,感谢所有的答案!

4

5 回答 5

7

SQLite很棒:它快速、稳定、经过验证、易于使用和集成。

还有Metakit,虽然学习曲线有点陡峭。但我在一个专业项目中成功地使用了它。

于 2009-01-20T14:56:34.893 回答
5

听起来您正在寻找一些 ORM,这样您就不必费心手写 SQL 代码。

这里有一篇文章介绍了 C++ 的 ORM 解决方案。

您也没有提到您正在编写的应用程序类型,如果它是桌面应用程序、移动应用程序、服务器应用程序。

移动:最好使用 SQLite 作为数据库引擎,因为它可以嵌入并且占用空间小。

桌面应用程序:您仍然应该考虑在此处使用 SQLite,但您也可以选择大多数桌面应用程序始终连接到 Internet,在这种情况下,您可能需要为此任务提供网络服务器。我建议使用 Apache + MySQL + PHP 并使用轻量级 ORM,例如Outlet ORM,然后使用标准 HTTP post 调用来访问您的资源。

服务器应用程序:您在这里有更多选择,但我仍然建议使用 Apache + MySQL + PHP + ORM,因为我发现用脚本语言维护这一层比用 C++ 容易得多。

于 2009-01-20T17:57:39.350 回答
1

MySQL Connector/C++ 是 JDBC 4.0 的 C++ 实现

使用 MySQL Connector/C++ 的参考客户有: - OpenOffice - MySQL Workbench

了解更多: http: //forums.mysql.com/read.php?167,221298

于 2009-03-07T08:23:44.043 回答
1

SQLite + Hiberlite 是一个不错且有前途的项目。虽然我希望看到它更积极地发展。见 http://code.google.com/p/hiberlite/

于 2009-05-20T05:50:49.117 回答
0

我使用 MYSQL 或 SQLite。

MYSQL:提供您的应用程序必须动态连接到的基于服务器的数据库。
SQLite:提供内存或文件数据库。

使用内存数据库对于快速开发很有用,因为仅为单个项目设置和配置数据库服务器是一项艰巨的任务。但是,一旦您启动并运行了数据库服务器,就很容易提起诉讼。

在内存中,数据库对于保存小型数据库(例如配置等)很有用。而对于较大的数据集,数据库服务器可能更实用。

从这里下载: http
://dev.mysql.com/ 从这里下载: http ://www.sqlite.org/

于 2009-01-21T04:43:52.133 回答