使用KVC生成SQL?

时间:2009-01-09 02:22:38

标签: cocoa orm key-value-coding

我想知道是否可以使用KVC生成SQL。我正在做一个简单的ORM;我想做这样的事情(伪代码):

for key in object.getKeys
    sql = sql + formatField(key,objet.value[key]);

并获得:

INSERT INTO Table (Field1) VALUES (1);

这在Objective-C中是否可行?

3 个答案:

答案 0 :(得分:0)

键值编码无法真正实现,但如果您不想构建特定于对象的数据访问层,则可以使用NSDictionary执行此任务。以下是数字字段的快速示例:

for ( NSString *key in [dictionary allKeys] )
{
    fields = [fields stringByAppendingFormat:@", %@", key];
    values = [values stringByAppendingFormat:@", %ld", (long)[[dictionary objectForKey:key] integerValue]];
}

NSString *sql = [NSString stringWithFormat:@"INSERT INTO Table (%@) VALUES (%@);", fields, values];

答案 1 :(得分:0)

你想要的听起来与SQLite Persistent Objects非常相似。这是一组客观的c类,基本上可以解决你所说的问题。有关课程和来源的详细信息(如果您想编写自己的版本,可能会特别感兴趣)可以在此处找到:http://iphonedevelopment.blogspot.com/2008/08/sqlite-persistent-objects.html

答案 2 :(得分:0)

我找到class_copyPropertyList以便填写账单。

我从SQLite Persistent Objects那里得到了它。我只需要知道如何实现关系;)