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];
}