亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

iOS開發-數據篇-sqlite存儲

2019-11-14 18:30:43
字體:
來源:轉載
供稿:網友

簡介:iOS開發的持久化數據存儲有4種方式:NSUserDefault.plist、NSKeyedArchiverNSKeyedUnarchiver、sqlite3數據庫、CoreData

sqlite3CoreData適合存儲大量數據(內容數據等),而另外兩種適合存儲簡單數據(語言,字體,標記等簡單數據存儲)。

準備:這里主要介紹利用sqlite3封裝的FMDatabase的數據庫,(當然還有PlausibleDatabase、sqlitepersistentobjects等其他封裝的庫),導入需要依賴的libsqlite3.dylib,FMDatabase已經根據工程不同情況兼容ARC和非ARC。為了只針對數據庫進行講解,直接創建一個簡單工程,導入FMDatabase庫。

內容:1.創建數據庫

#import <UIKit/UIKit.h>#import "FMDatabase.h"#import "FMDatabaseQueue.h"@interface ViewController : UIViewController{    FMDatabase *db;    FMDatabaseQueue *queue_db;}
//創建數據庫文件路徑- (NSString*)getPath{    NSArray* paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) ;    return [[paths objectAtIndex:0]stringByAppendingPathComponent:@"TEST.sqlite"] ;}

2.數據庫的建表-增-刪-改操作

- (void)viewDidLoad {    [super viewDidLoad];        [self executeSql:[self createTable]];//創表    [self executeSql:[self insertData]];//    [self executeSql:[self deleteData]];//    [self executeSql:[self setData]];////    [self queryData];    //開辟多線程    [NSThread detachNewThreadSelector:@selector(multipleThread) toTarget:self withObject:nil];    }
//創建數據庫-(NSString *)createTable{    NSString *createSql = [NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS TEST(a interger,b text)"];    return createSql;}//- (NSString *)insertData{    NSString *insertSql= [NSString stringWithFormat:                          @"INSERT INTO '%@' ('%@', '%@') VALUES ('%@', '%@')",                          @"TEST", @"a", @"b", [NSNumber numberWithInt:1], @"寧波"];    return insertSql;}//- (NSString *)deleteData{    NSString *deleteSql = [NSString stringWithFormat: @"DELETE FROM '%@' where %@ = '%@'",                           @"TEST", @"b", @"寧波"];    return deleteSql;}//-(NSString *)setData{    NSString *setSql = [NSString stringWithFormat:@"UPDATE '%@' SET '%@' = '%@' WHERE '%@' = '%@'",                        @"TEST", @"b",  @"象山" ,@"a",  [NSNumber numberWithInt:1]];    return setSql;}

3.數據庫的執行操作

//數據庫執行操作-(BOOL)executeSql:(NSString *)sql{    db = [FMDatabase databaseWithPath:[self getPath]];    BOOL success;    if ([db open]) {        success  = [db executeUpdate:sql];    }else{        NSLog(@"OPEN FAIL");    }    [db close];    return success;}

4.數據庫的查詢操作

//-(void)queryData{    if ([db open]) {        NSString *querySql = [NSString stringWithFormat:                              @"SELECT * FROM %@",@"TEST"];        FMResultSet * rs = [db executeQuery:querySql];        while ([rs next]) {            int a = [rs intForColumn:@"a"];            NSString *b = [rs stringForColumn:@"b"];            NSLog(@"a:%d  == b:%@",a,b);        }                [db close];    }}

5.數據庫的多線程操作

若在多線程的環境下,不能在多線程中共用同一個FMDatabase進行數據訪問,會造成數據混亂,多線程下不能用單例對象,這時得依靠FMDatabaseQueue。

//多線程下使用FMDatabaseQueue進行數據庫操作-(void)multipleThread{    queue_db = [FMDatabaseQueue databaseQueueWithPath:[self getPath]];    @autoreleasepool{        [queue_db inDatabase:^(FMDatabase *db2) {            [db2 executeUpdate:[self insertData]];            [self queryData];        }];    }}

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久躁狠狠躁夜夜爽| 久久777国产线看观看精品| 亚洲无亚洲人成网站77777| 色综合视频网站| 国产成人av在线播放| 亲爱的老师9免费观看全集电视剧| 国产欧美va欧美va香蕉在线| 亚洲美女视频网站| 日韩中文在线中文网三级| 成人h视频在线观看播放| 日韩人体视频一二区| 国产亚洲精品91在线| 精品亚洲一区二区| www.日韩欧美| 中文字幕亚洲欧美| 中文字幕自拍vr一区二区三区| 成人免费网站在线看| 影音先锋欧美精品| 欧美激情视频三区| 亚洲色图第一页| 午夜精品久久17c| 一区二区三区精品99久久| 国产精品久久在线观看| 欧美成人黑人xx视频免费观看| 欧美精品亚州精品| 91亚洲精品一区二区| 久久久久久久一区二区三区| 国产成+人+综合+亚洲欧洲| 91色视频在线观看| 日日狠狠久久偷偷四色综合免费| 色偷偷91综合久久噜噜| 国产在线观看精品一区二区三区| 亚洲国产精品久久久久秋霞不卡| 欧美中文字幕第一页| 欧美做受高潮1| 久久久女女女女999久久| 欧美精品xxx| 中文字幕久久久| 国产日韩精品视频| 成人亚洲激情网| 欧美中文字幕第一页| 欧美精品www在线观看| 91精品国产综合久久久久久久久| 97视频免费在线观看| 亚洲精品国产精品国自产观看浪潮| 欧美成人午夜激情| 日本欧美国产在线| 国产精品第8页| 北条麻妃在线一区二区| 日韩黄色高清视频| 亚洲国产日韩欧美在线图片| 2019日本中文字幕| 欧美视频专区一二在线观看| 丝袜亚洲欧美日韩综合| 亚洲国产精品电影| 国产视频久久网| 中文字幕精品www乱入免费视频| 亚洲精品视频网上网址在线观看| 黑人与娇小精品av专区| 黑人巨大精品欧美一区二区三区| 欧美激情视频一区二区三区不卡| 亚洲国产精品va在线看黑人动漫| 亚洲人成电影网站| 日韩在线观看免费高清| 91亚洲精华国产精华| 亚洲国产成人精品久久久国产成人一区| 国产精品一区二区av影院萌芽| 亚洲国产第一页| 97av在线播放| 亚洲白拍色综合图区| 国产午夜精品全部视频在线播放| 午夜精品久久久久久久99黑人| 国产精品美女无圣光视频| 国产亚洲一区精品| 韩剧1988在线观看免费完整版| 日韩美女写真福利在线观看| 国产亚洲欧美一区| 中文字幕免费精品一区高清| 国产精品久久久久影院日本| 久久久久国色av免费观看性色| 色婷婷**av毛片一区| 一区二区欧美激情| 欧美视频专区一二在线观看| 国产精品永久在线| 亚洲午夜久久久久久久| 久久人体大胆视频| 欧美国产视频日韩| 亚洲精品影视在线观看| 91国内产香蕉| 亚洲电影成人av99爱色| 亚洲欧美中文字幕在线一区| 国产成人精品一区二区在线| 国产精品a久久久久久| 久久综合伊人77777蜜臀| 色久欧美在线视频观看| 成人一区二区电影| 97人人爽人人喊人人模波多| 少妇高潮 亚洲精品| 九九热精品视频| 久久久久国产精品一区| 亚洲欧美另类中文字幕| 日韩电影在线观看永久视频免费网站| 亚洲精品网址在线观看| 91亚洲精品久久久久久久久久久久| 亚洲色图校园春色| 国产一区二区三区毛片| 蜜臀久久99精品久久久无需会员| 国产精品欧美激情| 久久久久久12| 亚洲午夜激情免费视频| 久久视频在线播放| 日韩亚洲第一页| 日本一本a高清免费不卡| 亚洲а∨天堂久久精品9966| 亚洲综合在线做性| 亚洲第一精品夜夜躁人人躁| 日韩在线精品一区| 日韩在线播放视频| 日韩欧美亚洲范冰冰与中字| 亚洲精品99999| 久久精品国产亚洲精品| 亚洲丝袜一区在线| 久久久久久久久久婷婷| 庆余年2免费日韩剧观看大牛| 热门国产精品亚洲第一区在线| 91色精品视频在线| 国产精品精品一区二区三区午夜版| 亚洲自拍偷拍福利| 成人久久精品视频| 国产精品免费久久久久久| 亚洲国产精彩中文乱码av在线播放| 国产精品久久久精品| 国产精品福利久久久| 亚洲xxxxx性| 中日韩美女免费视频网站在线观看| 久久久久国产视频| 亚洲精品视频网上网址在线观看| 日韩电影网在线| 91精品久久久久久久久久久| 91久久精品久久国产性色也91| 成人激情视频在线| 日韩毛片在线观看| 国产精品日韩欧美大师| 亚洲精品一区二三区不卡| 亚洲天堂av网| 国产日韩中文字幕| 一区二区三区四区在线观看视频| 日韩在线观看免费高清完整版| 精品无码久久久久久国产| 欧美野外wwwxxx| 欧美日韩国产页| 欧美日韩一区二区三区| 亚洲成色777777在线观看影院| 国内免费久久久久久久久久久| 欧美成人午夜激情视频| 精品国产户外野外| 亚洲天堂日韩电影| 亚洲成人av片在线观看| 国产亚洲aⅴaaaaaa毛片| 欧美在线视频导航| 亚洲欧美成人一区二区在线电影| 欧美精品18videos性欧美| 亚洲影影院av| 久久97精品久久久久久久不卡|