1

我一直在寻找不同的数据存储方式,我想我将不得不使用数据库。但我一直讨厌数据库的是,它完全不是我——作为一个想要创建 C++ 程序的人——所期望的(创建查询......把我的头撞到墙上)。

我找到了 EasySQLite,但我找不到任何适用于 MySQL 的东西。有这样的吗?

这是我的意思的伪代码示例:

Database * db = NULL;
int main()
{
    db = new Database("127.0.0.1","Database","Username","Password");
    if(db)
    {
        Table users = db->CreateTable("Users");
        users.AddField("username",FIELD_TYPE_STRING);
        users.AddField("birthdate",FIELD_TYPE_TIMESTAMP);
        Record LastUser = users.insert("The Pet",time());
        std::string username(LastUser.GetField("username"));
        LastUser.remove();
        db->Disconnect();
    }
    return 0;
}
4

2 回答 2

2

考虑使用 ORM。这是一个很好的,ODB

于 2013-05-12T19:18:45.940 回答
1

我只能想到几个选项:

  • 使用支持 NoSQL Api 的 mysql 版本。以mysql cluster 7.2为例。这样,您应该能够做您想做的事,尽管那时您会将大多数内容存储为 blob。

  • 实现您自己的库,有效地使用 mysql 表作为键值存储,或将单个函数调用映射到 sql 查询。这可能会非常低效,所以我只是为了完整性而提到它。当然,您也可以使用其他人的一些 orm 库,但无论哪种方式,性能都会很糟糕,而且您会得到更多的错误,而不是更少。

  • 不要使用mysql,如果你不想使用sql。这可能很明显,但实际上,MySQL 是建立在 SQL 之上的,因此希望绕过它(我真的理解)试图使用锤子作为螺丝刀。还有很多其他的选择。TokyoCabinet、Kyoto...、MongoDB、MemcacheD、CouchDB、...有很多替代品,它们无需任何基于字符串的查询语言即可工作。

于 2013-05-12T19:23:21.753 回答