1. 程式人生 > >u012942234的專欄

u012942234的專欄

一、建立和讀取

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *doc = [paths objectAtIndex:0];
    NSString *path = [doc stringByAppendingPathComponent:@"xx.sqlite"];
    NSFileManager * fileManager = [NSFileManager defaultManager];
    if ([fileManager fileExistsAtPath:path] == NO)
    {
        // 建立資料庫
        self.db = [FMDatabase databaseWithPath:path];
        if ([self.db open])
        {
            // 建立表
            NSMutableString *sql = [NSMutableString stringWithFormat:@"CREATE TABLE TestRecord"];
            [sql appendString:@"("];
            [sql appendString:@"paperid varchar,"];
            [sql appendString:@"answer varchar"];
            [sql appendString:@")"];
            BOOL res = [self.db executeUpdate:sql];
            if (!res)
            {
                NSLog(@"error when creating table TestRecord");
            }
            else
            {
                NSLog(@"succ to creating table TestRecord");
            }
            [self.db close];
        }
        else
        {
            NSLog(@"error when open db");
        }
    }
    else
    {

       //讀取
        self.db = [FMDatabase databaseWithPath:path];
    }

二、插入資料

 if ([self.db open])
        {
            NSData *data = [NSJSONSerialization dataWithJSONObject:dataArray options:NSJSONWritingPrettyPrinted error:nil];
            NSString *dataStr = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
            NSString *insertSql = @"insert into TestRecord(paperid,answer) values(?,?)";
            
            BOOL success = [self.db executeUpdate:insertSql,paperId,dataStr];
            if (success)
            {
                NSLog(@"資料插入成功");
            }
            [self.db close];
        }

三、查詢資料庫

 if ([self.db open])
    {
        NSString *selectSql = [NSString stringWithFormat:@"select *from TestRecord where paperid =%@",paperId];
        FMResultSet *result = [self.db executeQuery:selectSql];
        if([result next])
        {
            NSString *answer = [result stringForColumn:@"answer"];
            NSLog(@"paperid=%@ answer=%@",[result stringForColumn:@"paperid"],answer);
            NSArray *array = [NSJSONSerialization JSONObjectWithData:[answer dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableLeaves | NSJSONReadingAllowFragments error:nil];
            [self.db close];
            return [NSMutableArray arrayWithArray:array];
        }
        [self.db close];
    }

四、刪除資料

 if ([self.db open])
    {
        NSString *updateSql = [NSString stringWithFormat:@"DELETE FROM TestRecord WHERE paperid = %@",paperId];
        BOOL res = [self.db executeUpdate:updateSql];
        if (res)
        {
            NSLog(@"刪除指定資料成功");
        }
        else
        {
            NSLog(@"刪除指定資料失敗");
        }
        [self.db close];
    }

五、修改資料庫

 if ([self.db open])
    {
        NSData *data = [NSJSONSerialization dataWithJSONObject:dataArray options:NSJSONWritingPrettyPrinted error:nil];
        NSString *dataStr = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
        NSString *updateSql = [NSString stringWithFormat:@"update TestRecord set answer = '%@' where paperid ='%@'",dataStr,paperId];
        BOOL res = [self.db executeUpdate:updateSql];
        if (res)
        {
            NSLog(@"修改資料成功");
        }
        else
        {
            NSLog(@"修改資料失敗");
        }
        [self.db close];
    }