FMDB数据库使用

FMDatabase 数据库

1. 下载 FMDatabase
    https ://github.com/ccgus/ fmdb
    导入下载里面的 src 文件,删了 fmdb .m文件
2. 引入 framework:libsqlite3. dylib
3. 引入头文件
    #import " FMDatabase.h
    数据库文件要兼容 iPhone4 iPhone5 需要放在 Document Library 目录中 , 先判断 Document/Library 中数据库文件 ( 一般是 . sqlite 后缀 ) 是否存在 , 如果不存在则从 工程 (bundle) 中把数据库文件拷贝到 Document 中或 Library 中。

以下是我是我工程中用过的一个数据库操作代码,记下来,免得忘记了:
[cpp]  view plain copy
  1. //数据库操作,1代表增减,2代表删除,3,代表查询,4,代表修改  
  2. -(void)operateDB:(NSInteger)num andRow:(NSInteger)row status:(NSInteger)status{  
  3.     self.deleteOld = YES;  
  4.     self.dbFile = @"shopCar_db.sqlite";  
  5.     NSFileManager *manager = [NSFileManager defaultManager];  
  6.     NSString *dbPath = [Utilities documentsPath:self.dbFile];  
  7.       
  8.     //没存在则拷贝到document  
  9.     if (![manager fileExistsAtPath:dbPath]) {  
  10.         NSString *bundlePath = [Utilities bundlePath:self.dbFile];  
  11.         if ([manager copyItemAtPath:bundlePath toPath:dbPath error:nil]) {  
  12.             NSLog(@"copy ok...");  
  13.         }  
  14.         else  
  15.         {  
  16.             NSLog(@"copy error...");  
  17.         }  
  18.     }  
  19.     else{  
  20.         if (self.deleteOld) {  
  21.             NSLog(@"delete old and create new..");  
  22.             NSString *bundlePath = [Utilities bundlePath:self.dbFile];  
  23.             [manager removeItemAtPath:dbPath error:nil];  
  24.             [manager copyItemAtPath:bundlePath toPath:dbPath error:nil];  
  25.         }  
  26.         else  
  27.         {  
  28.             NSLog(@"do nothing...");  
  29.         }  
  30.           
  31.     }  
  32.       
  33.       
  34.     FMDatabase *db = [FMDatabase databaseWithPath:dbPath];  
  35.     NSLog(@"begin to db...");  
  36.     if ([db open]) {  
  37.         if(status == 1){  
  38.             NSLog(@"增减.......");  
  39.         }  
  40.         if(status == 2){  
  41.             NSString *sql = [NSString stringWithFormat:@"delete from shopCar_tb where id = %i",row];  
  42.             [db executeUpdate:sql];  
  43.         }  
  44.         if(status == 3){  
  45.             NSLog(@"查询........");  
  46.         }  
  47.         if(status == 4){  
  48.             NSString *sql = [NSString stringWithFormat:@"UPDATE shopCar_tb SET num = '%d' WHERE id = %d",num,row];  
  49.             [db executeUpdate:sql];  
  50.         }  
  51.         NSString *sql = @"select * from shopCar_tb";  
  52.         FMResultSet *result = [db executeQuery:sql];  
  53.         _mutableArrayData = [[NSMutableArray alloc] init];  
  54.         [_mutableArrayData removeAllObjects];  
  55.         [_mutableDictionayData removeAllObjects];  
  56.         while ([result next]) {  
  57.             _mutableDictionayData = [[NSMutableDictionary alloc] init];  
  58.             NSString *sid = [result stringForColumn:@"id"];  
  59.             [_mutableDictionayData setObject:sid forKey:@"id"];  
  60.               
  61.             NSString *name = [result stringForColumn:@"name"];  
  62.             [_mutableDictionayData setObject:name forKey:@"name"];  
  63.               
  64.             NSString *gid = [result stringForColumn:@"gid"];  
  65.             [_mutableDictionayData setObject:gid forKey:@"gid"];  
  66.               
  67.             NSString *num = [result stringForColumn:@"num"];  
  68.             [_mutableDictionayData setObject:num forKey:@"num"];  
  69.             NSLog(@"num = %i",[num intValue]);  
  70.               
  71.             NSString *price = [result stringForColumn:@"price"];  
  72.             [_mutableDictionayData setObject:price forKey:@"price"];  
  73.               
  74.             NSString *path = [result stringForColumn:@"path"];  
  75.             [_mutableDictionayData setObject:path forKey:@"path"];  
  76.               
  77.             [_mutableArrayData addObject:_mutableDictionayData];  
  78.         }  
  79.           
  80.     }  
  81.     [db close];  
  82.       
  83.     NSLog(@"end db...");  
  84.       
  85.       
  86. }  


FMDB数据库使用说明连接: http://www.highoncoding.com/Articles/836_Persisting_iOS_Application_Data_in_SQLite_Database_Using_FMDB.aspx

你可能感兴趣的:(FMDB数据库使用)