使用KVC生成SQL?

发布于 2024-07-11 02:10:14 字数 271 浏览 8 评论 0原文

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

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

并得到:

INSERT INTO Table (Field1) VALUES (1);

这在 Objective-C 中可能吗?

I wonder if it is possible to use KVC to generate SQL. I'm doing a light ORM; I wanna do something like this (pseudocode):

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

and get:

INSERT INTO Table (Field1) VALUES (1);

Is this possible in Objective-C?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

风筝有风,海豚有海 2024-07-18 02:10:14

键值编码实际上无法做到这一点,但如果您不想构建特定于对象的数据访问层,则可以使用 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];

Key Value Coding can't really do it, but you could use an NSDictionary for this task if you don't want to build a data access layer specific for your objects. Here's a quick example for numeric fields:

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];
美人骨 2024-07-18 02:10:14

你想要的听起来与 SQLite 持久对象非常相似。 它是一组 Objective-C 类,基本上可以完成您正在谈论的事情。 有关类和源的详细信息(如果您想编写自己的版本,您可能会特别感兴趣)可以在此处找到:http://iphonedevelopment.blogspot.com/2008/08/sqlite-persistent-objects.html

What you want sounds very similar to SQLite Persistent Objects. It's a set of objective-c classes that basically do what you're talking about. Details about the classes and the source (which may be particularly interesting to you if you want to write your own version) can be found here: http://iphonedevelopment.blogspot.com/2008/08/sqlite-persistent-objects.html

恋竹姑娘 2024-07-18 02:10:14

我找到了 class_copyPropertyList 这样就可以满足要求了。

我从 SQLite 持久对象中得到这一点。 我只需要知道如何实现关系;)

I found class_copyPropertyList so that fill the bill.

I get that from SQLite Persistent Objects. I only need know how implement relations ;)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文