MST

星途 面试题库

面试题:Objective-C中FMDB数据库框架如何执行一条简单的插入语句

假设你有一个名为`User`的数据表,包含`name`(文本类型)和`age`(整数类型)字段,使用FMDB框架在Objective-C中编写代码实现向该表插入一条新记录,记录的`name`为`John`,`age`为25。
22.2万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

一键面试
#import <FMDB/FMDB.h>

- (void)insertUser {
    // 数据库文件路径
    NSString *docsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    NSString *dbPath = [docsPath stringByAppendingPathComponent:@"test.db"];
    FMDatabase *db = [FMDatabase databaseWithPath:dbPath];
    
    if ([db open]) {
        // 插入数据的SQL语句
        NSString *insertSQL = @"INSERT INTO User (name, age) VALUES (?, ?)";
        BOOL success = [db executeUpdate:insertSQL, @"John", @25];
        if (success) {
            NSLog(@"插入成功");
        } else {
            NSLog(@"插入失败: %@", [db lastErrorMessage]);
        }
        [db close];
    } else {
        NSLog(@"无法打开数据库: %@", [db lastErrorMessage]);
    }
}

上述代码实现了使用FMDB框架向User表插入一条新记录的功能。首先获取数据库文件路径并打开数据库,然后使用executeUpdate:方法执行插入SQL语句,传入nameage的值。执行成功或失败会有相应的日志输出。最后关闭数据库。

请注意,上述代码中假设User表已经存在,如果不存在需要先创建表。创建表的SQL语句示例如下:

NSString *createTableSQL = @"CREATE TABLE IF NOT EXISTS User (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)";
BOOL createSuccess = [db executeUpdate:createTableSQL];
if (createSuccess) {
    NSLog(@"表创建成功");
} else {
    NSLog(@"表创建失败: %@", [db lastErrorMessage]);
}

你可以在打开数据库后,执行插入操作前加入上述创建表的代码。