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中。
以下是我是我工程中用过的一个数据库操作代码,记下来,免得忘记了:
  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.     //没存在则拷贝到document
  8.     if (![manager fileExistsAtPath:dbPath]) {
  9.         NSString *bundlePath = [Utilities bundlePath:self.dbFile];
  10.         if ([manager copyItemAtPath:bundlePath toPath:dbPath error:nil]) {
  11.             NSLog(@"copy ok...");
  12.         }
  13.         else
  14.         {
  15.             NSLog(@"copy error...");
  16.         }
  17.     }
  18.     else{
  19.         if (self.deleteOld) {
  20.             NSLog(@"delete old and create new..");
  21.             NSString *bundlePath = [Utilities bundlePath:self.dbFile];
  22.             [manager removeItemAtPath:dbPath error:nil];
  23.             [manager copyItemAtPath:bundlePath toPath:dbPath error:nil];
  24.         }
  25.         else
  26.         {
  27.             NSLog(@"do nothing...");
  28.         }
  29.     }
  30.     FMDatabase *db = [FMDatabase databaseWithPath:dbPath];
  31.     NSLog(@"begin to db...");
  32.     if ([db open]) {
  33.         if(status == 1){
  34.             NSLog(@"增减.......");
  35.         }
  36.         if(status == 2){
  37.             NSString *sql = [NSString stringWithFormat:@"delete from shopCar_tb where id = %i",row];
  38.             [db executeUpdate:sql];
  39.         }
  40.         if(status == 3){
  41.             NSLog(@"查询........");
  42.         }
  43.         if(status == 4){
  44.             NSString *sql = [NSString stringWithFormat:@"UPDATE shopCar_tb SET num = '%d' WHERE id = %d",num,row];
  45.             [db executeUpdate:sql];
  46.         }
  47.         NSString *sql = @"select * from shopCar_tb";
  48.         FMResultSet *result = [db executeQuery:sql];
  49.         _mutableArrayData = [[NSMutableArray alloc] init];
  50.         [_mutableArrayData removeAllObjects];
  51.         [_mutableDictionayData removeAllObjects];
  52.         while ([result next]) {
  53.             _mutableDictionayData = [[NSMutableDictionary alloc] init];
  54.             NSString *sid = [result stringForColumn:@"id"];
  55.             [_mutableDictionayData setObject:sid forKey:@"id"];
  56.             NSString *name = [result stringForColumn:@"name"];
  57.             [_mutableDictionayData setObject:name forKey:@"name"];
  58.             NSString *gid = [result stringForColumn:@"gid"];
  59.             [_mutableDictionayData setObject:gid forKey:@"gid"];
  60.             NSString *num = [result stringForColumn:@"num"];
  61.             [_mutableDictionayData setObject:num forKey:@"num"];
  62.             NSLog(@"num = %i",[num intValue]);
  63.             NSString *price = [result stringForColumn:@"price"];
  64.             [_mutableDictionayData setObject:price forKey:@"price"];
  65.             NSString *path = [result stringForColumn:@"path"];
  66.             [_mutableDictionayData setObject:path forKey:@"path"];
  67.             [_mutableArrayData addObject:_mutableDictionayData];
  68.         }
  69.     }
  70.     [db close];
  71.     NSLog(@"end db...");
  72. }
FMDB数据库使用说明连接:http://www.highoncoding.com/Articles/836_Persisting_iOS_Application_Data_in_SQLite_Database_Using_FMDB.aspx
0

这篇文章还没有评论

发表评论