ios FMDataBase库的运用

  1.  1,拿到数据库文件的路径  

  2. self.path = NSHomeDirectory();  

  3. self.path = [path stringByAppendingPathComponent:@"Documents/data.db"];  

  4. 2,拿到数据库对象,打开数据库,如果这个数据库不存在,就会自动创建  

  5. FMDatabase* db = [FMDatabase databaseWithPath:path];  

  6.     BOOL res = [db open];  

  7.     if (res == NO) {  

  8.         NSLog(@"打开失败");  

  9.         return;  

  10.     }else{  

  11.         NSLog(@"数据库打开成功");  

  12.     }  

  13. 3,//如果表不存在,创建  

  14.     res = [db executeUpdate:@"create table if not exists Students(name,score,image)"];//执行sql语句  

  15.       

  16.     if (res == NO) {  

  17.         NSLog(@"创建失败");  

  18.         [db close];//关闭数据库  

  19.         return;  

  20.     }else if(res==YES){  

  21.         NSLog(@"创建成功");  

  22.     }  

  23. 4,表创建成功之后,就进行增删改查的操作:  

  24.      1>,插入数据  

  25.     res = [db executeUpdate:@"insert into Students values (?,?,?)", name, num, headData];  

  26.     if (res == NO) {  

  27.         NSLog(@"插入失败");  

  28.     }  

  29.     [db close];  

  30.     2>,删除操作:  

  31. - (void)del:(id)sender{  

  32.     FMDatabase* db = [FMDatabase databaseWithPath:path];  

  33.     //打开数据库  

  34.     BOOL res = [db open];  

  35.     //如果失败,退出方法  

  36.     if (res == NO) {  

  37.         NSLog(@"打开失败");  

  38.         return;  

  39.     }  

  40.     //删除  

  41.     res = [db executeUpdate:@"delete from Students where name=?",nameField.text];  

  42.     if (res == NO) {  

  43.         NSLog(@"删除失败");  

  44.     }  

  45.     [db close];  

  46. }  

  47.     3>,更新操作:  

  48. - (void)update:(id)sender{  

  49.     FMDatabase* db = [FMDatabase databaseWithPath:path];  

  50.     BOOL res = [db open];  

  51.     if (res == NO) {  

  52.         NSLog(@"打开失败");  

  53.         return;  

  54.     }  

  55.       

  56.     NSNumber* num = [NSNumber numberWithInt:[scoreField.text intValue]];  

  57.     res = [db executeUpdate:@"update Students set score=? where name=?", num, nameField.text];  

  58.     if (res == NO) {  

  59.         NSLog(@"修改失败");  

  60.     }  

  61.     [db close];  

  62. }  

  63.      4>,查询操作:  

  64. <span>  </span>  

  65. - (void)fetch:(id)sender{  

  66.     FMDatabase* db = [FMDatabase databaseWithPath:path];  

  67.     BOOL res = [db open];  

  68.     if (res == NO) {  

  69.         NSLog(@"打开失败");  

  70.         return;  

  71.     }  

  72.       

  73.     FMResultSet* set = [db executeQuery:@"select * from Students"];//FMResultSet相当于游标集  

  74.     //创建数组,保存所有学生信息  

  75.     NSMutableArray* array = [NSMutableArray arrayWithCapacity:0];  

  76.     //遍历Students表  

  77.     while ([set next]) {//有下一个的话,就取出它的数据,然后关闭数据库  

  78.         //姓名  

  79.         NSString* name = [set stringForColumn:@"name"];  

  80.         //成绩  

  81.         int score = [set intForColumnIndex:1];  

  82.         //照片  

  83.         NSData* data = [set dataForColumnIndex:2];  

  84.         //float a = [[set objectForColumnIndex:3] floatValue];  

  85.         UIImage* image = [UIImage imageWithData:data];  

  86.           

  87.         StudentItem* student = [[StudentItem alloc] init];  

  88.         student.name = name;  

  89.         student.score = score;  

  90.         student.image = image;  

  91.         [array addObject:student];  

  92.         [student release];  

  93.     }  

  94.     [db close];  

  95.      

  96. }     

你可能感兴趣的:(ios FMDataBase库的运用)