哪些库不需要为MySQL创建查询?

时间:2013-05-12 19:14:20

标签: c++ mysql wrapper

我一直在寻找不同的数据存储方式,我想我必须使用数据库。 但是我一直讨厌数据库的是,我完全不是我 - 想要创建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;
}

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

我只能想到几个选项:

  • 使用支持NoSQL Api的mysql版本。例如,Mysql集群7.2似乎。这样你应该能够做你想要的,尽管你将大部分东西存储为blob。

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

  • 如果您不想使用sql,请不要使用mysql。它可能是显而易见的,但实际上,MySQL是建立在SQL之上的,所以希望绕过它(我真的理解它)试图用锤子作为螺丝刀。还有很多其他选择。 TokyoCabinet,Kyoto ...,MongoDB,MemcacheD,CouchDB,......有很多替代方案可以使用没有任何基于字符串的查询语言。