c有一些方便的ORM库框架吗?

时间:2012-05-14 02:48:45

标签: c database orm

我最近使用sqlite3和c语言。谁能告诉我一些方便的ORM for c? 是否有必要为我自己的项目开发ORM机制?

3 个答案:

答案 0 :(得分:3)

我写了this library作为“ORM for C”。

示例代码如下:

typedef struct person {
  int id;
  char *name;
} person;

void find_by_name(isti_db *db, const char *text, person** result) {
  corm_person_select *s;
  corm_person_select_alloc(&s, db);
  s->name(s, "like", text)->_go_one(s, result);  // populate result from the database
  s->_free(s, 0);  // in "real" code, 0 is a chained status value
}

不幸的是,它并没有在任何地方使用(据我所知),它包含了很多经验丰富的c程序员可能会觉得奇怪的想法。但它并没有被抛弃 - 我仍然对这个问题感兴趣,并希望在某个时候继续研究它。

答案 1 :(得分:2)

对ORM的需求告诉我,您有一些业务/域对象模型,您想要映射到数据库。

如果是这种情况,那么我觉得你试图用最适合系统编程的语言编写业务应用程序(C)。您可能想要考虑这是否是一个好的架构策略。

此外,我认为ORM不太可能适合以下语言:

  1. 本身不是面向对象的
  2. 对于许多ORM方案至关重要的元编程/反射没有太多支持
  3. 最后,有很多人认为ORM在任何情况下都是一种反模式。 (exampleexampleexample

    总的来说,我的建议是:

    • 如果您打算继续使用C
    • ,请完全避免使用ORM
    • 切换到ORM至少得到良好支持并符合范例(最明显是Java)的语言/平台

答案 2 :(得分:0)

简短的谷歌搜索提出了这个问题:http://ales.jikos.cz/smorm/

我从未使用它,所以如果它重新格式化你的所有硬盘驱动器并使你的冰箱足够温暖以便破坏你的牛奶,不要怪我,但如果你真的不这样做,它看起来可能比什么都好想写查询。