IOS第三方数据库FMDatabase的简单使用
来源:互联网 发布:淘宝怎样买百度云资源 编辑:程序博客网 时间:2024/05/16 11:52
1,拿到数据库文件的路径self.path = NSHomeDirectory();self.path = [path stringByAppendingPathComponent:@"Documents/data.db"];2,拿到数据库对象,打开数据库,如果这个数据库不存在,就会自动创建FMDatabase* db = [FMDatabase databaseWithPath:path]; BOOL res = [db open]; if (res == NO) { NSLog(@"打开失败"); return; }else{ NSLog(@"数据库打开成功"); }3,//如果表不存在,创建 res = [db executeUpdate:@"create table if not exists Students(name,score,image)"];//执行sql语句 if (res == NO) { NSLog(@"创建失败"); [db close];//关闭数据库 return; }else if(res==YES){ NSLog(@"创建成功"); }4,表创建成功之后,就进行增删改查的操作: 1>,插入数据 res = [db executeUpdate:@"insert into Students values (?,?,?)", name, num, headData]; if (res == NO) { NSLog(@"插入失败"); } [db close]; 2>,删除操作:- (void)del:(id)sender{ FMDatabase* db = [FMDatabase databaseWithPath:path]; //打开数据库 BOOL res = [db open]; //如果失败,退出方法 if (res == NO) { NSLog(@"打开失败"); return; } //删除 res = [db executeUpdate:@"delete from Students where name=?",nameField.text]; if (res == NO) { NSLog(@"删除失败"); } [db close];} 3>,更新操作:- (void)update:(id)sender{ FMDatabase* db = [FMDatabase databaseWithPath:path]; BOOL res = [db open]; if (res == NO) { NSLog(@"打开失败"); return; } NSNumber* num = [NSNumber numberWithInt:[scoreField.text intValue]]; res = [db executeUpdate:@"update Students set score=? where name=?", num, nameField.text]; if (res == NO) { NSLog(@"修改失败"); } [db close];} 4>,查询操作:- (void)fetch:(id)sender{ FMDatabase* db = [FMDatabase databaseWithPath:path]; BOOL res = [db open]; if (res == NO) { NSLog(@"打开失败"); return; } FMResultSet* set = [db executeQuery:@"select * from Students"];//FMResultSet相当于游标集 //创建数组,保存所有学生信息 NSMutableArray* array = [NSMutableArray arrayWithCapacity:0]; //遍历Students表 while ([set next]) {//有下一个的话,就取出它的数据,然后关闭数据库 //姓名 NSString* name = [set stringForColumn:@"name"]; //成绩 int score = [set intForColumnIndex:1]; //照片 NSData* data = [set dataForColumnIndex:2]; //float a = [[set objectForColumnIndex:3] floatValue]; UIImage* image = [UIImage imageWithData:data]; StudentItem* student = [[StudentItem alloc] init]; student.name = name; student.score = score; student.image = image; [array addObject:student]; [student release]; } [db close]; }