面试题答案
一键面试#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语句,传入name
和age
的值。执行成功或失败会有相应的日志输出。最后关闭数据库。
请注意,上述代码中假设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]);
}
你可以在打开数据库后,执行插入操作前加入上述创建表的代码。