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

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

FMDB的簡單使用

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

FMDB常用類:

FMDatabase : 一個單一的SQLite數據庫,用于執行SQL語句。
FMResultSet :執行查詢一個FMDatabase結果集,這個和android的Cursor類似。
FMDatabaseQueue :在多個線程來執行查詢和更新時會使用這個類。

創建數據庫:

db = [FMDatabase databaseWithPath:database_path];  

1、當數據庫文件不存在時,fmdb會自己創建一個。

2、 如果你傳入的參數是空串:@"" ,則fmdb會在臨時文件目錄下創建這個數據庫,數據庫斷開連接時,數據庫文件被刪除。

3、如果你傳入的參數是 NULL,則它會建立一個在內存中的數據庫,數據庫斷開連接時,數據庫文件被刪除。

 

打開數據庫:

[db open]  

返回BOOL型。

關閉數據庫:

[db close] 

創建表:

if ([db open]) 

{  

   NSString *sqlCreateTable =  [NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS '%@' ('%@' INTEGER   BOOL res = [db executeUpdate:sqlCreateTable];  

  if (!res) {  

      NSLog(@"error when creating db table");  

    } else {  

       NSLog(@"success to creating db table");  

        }  

        [db close];  

}  

 

添加數據:

 

if ([db open]){

  NSString *insertSql1= [NSString stringWithFormat:  

                              @"INSERT INTO '%@' ('%@', '%@', '%@') VALUES ('%@', '%@', '%@')",  

                              TABLENAME, NAME, AGE, ADDRESS, @"張三", @"13", @"濟南"];  

  BOOL res = [db executeUpdate:insertSql1]; 

  if (!res) {  

           NSLog(@"error when insert db table");  

       } else {  

           NSLog(@"success to insert db table");  

       }  

       [db close];  

}

修改數據:

if ([db open]){

NSString *updateSql = [NSString stringWithFormat:  

                               @"UPDATE '%@' SET '%@' = '%@' WHERE '%@' = '%@'",  

                               TABLENAME,   AGE,  @"15" ,AGE,  @"13"];  

BOOL res = [db executeUpdate:updateSql];  

 if (!res) {  

            NSLog(@"error when update db table");  

        } else {  

            NSLog(@"success to update db table");  

        }  

        [db close];  

}

刪除數據:

if ([db open]){

 NSString *deleteSql = [NSString stringWithFormat:  

                               @"delete from %@ where %@ = '%@'",  

                               TABLENAME, NAME, @"張三"];  

BOOL res = [db executeUpdate:deleteSql];  

if (!res) {  

            NSLog(@"error when delete db table");  

        } else {  

            NSLog(@"success to delete db table");  

        } 

        [db close];  

}

 

數據庫查詢操作:

查詢操作使用了executeQuery,并涉及到FMResultSet。

if ([db open]){

 NSString * sql = [NSString stringWithFormat:  

                          @"SELECT * FROM %@",TABLENAME];  

        FMResultSet * rs = [db executeQuery:sql];  

while ([rs next]) {  

    int Id = [rs intForColumn:ID];  

            NSString * name = [rs stringForColumn:NAME];  

            NSString * age = [rs stringForColumn:AGE];  

            NSString * address = [rs stringForColumn:ADDRESS];  

            NSLog(@"id = %d, name = %@, age = %@  address = %@", Id, name, age, address);  

        }  

        [db close];  

}

 

FMDB的FMResultSet提供了多個方法來獲取不同類型的數據:

數據庫多線程操作:

如果應用中使用了多線程操作數據庫,那么就需要使用FMDatabaseQueue來保證線程安全了。 應用中不可在多個線程中共同使用一個FMDatabase對象操作數據庫,這樣會引起數據庫數據混亂。 為了多線程操作數據庫安全,FMDB使用了FMDatabaseQueue,使用FMDatabaseQueue很簡單,首先用一個數據庫文件地址來初使化FMDatabaseQueue,然后就可以將一個閉包(block)傳入inDatabase方法中。 在閉包中操作數據庫,而不直接參與FMDatabase的管理。

 

FMDatabaseQueue * queue = [FMDatabaseQueue databaseQueueWithPath:database_path];  

   dispatch_queue_t q1 = dispatch_queue_create("queue1", NULL);  

   dispatch_queue_t q2 = dispatch_queue_create("queue2", NULL);  

   dispatch_async(q1, ^{  

for (int i = 0; i < 50; ++i) {  

           [queue inDatabase:^(FMDatabase *db2) {  

               NSString *insertSql1= [NSString stringWithFormat:  

                                      @"INSERT INTO '%@' ('%@', '%@', '%@') VALUES (?, ?, ?)",  

                                      TABLENAME, NAME, AGE, ADDRESS];  

              NSString * name = [NSString stringWithFormat:@"jack %d", i];  

              NSString * age = [NSString stringWithFormat:@"%d", 10+i];  

     BOOL res = [db2 executeUpdate:insertSql1, name, age,@"濟南"];    

     if (!res) {  

                   NSLog(@"error to inster data: %@", name);  

               } else {  

                   NSLog(@"succ to inster data: %@", name);  

               }  

           }];  

       }  

 });  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品在线观看| 欧美视频第一页| 9.1国产丝袜在线观看| 久久久久这里只有精品| 亚洲级视频在线观看免费1级| 国产91对白在线播放| 亚洲精品一区av在线播放| 亚洲欧洲中文天堂| 欧美激情啊啊啊| 亚洲欧美日韩精品久久亚洲区| 在线一区二区日韩| 国产精品丝袜久久久久久不卡| 国产精品久久久久久久9999| 亚洲成人免费网站| 日本亚洲精品在线观看| 国产精品一区二区在线| 日韩中文字幕在线视频| 国产精品一区二区久久国产| 成人免费在线网址| 成人情趣片在线观看免费| 日韩大陆欧美高清视频区| 欧美乱大交做爰xxxⅹ性3| 成人午夜一级二级三级| 综合136福利视频在线| 国产精品久久91| 久久久久久com| 日韩精品中文字幕有码专区| 亚洲欧美中文字幕| 欧美精品激情在线观看| 国产精品视频久久久| 91亚洲精华国产精华| 日韩精品丝袜在线| 欧美壮男野外gaytube| 亚洲成人久久电影| 国内精品小视频在线观看| 日韩欧美在线视频| 成人性教育视频在线观看| 欧美电影在线观看网站| 欧美专区在线播放| 欧美黑人性猛交| 日本久久91av| 亚洲伊人久久综合| 久久久久久久久久久久久久久久久久av| 欧美电影免费观看| 久久久91精品国产一区不卡| 久久久久久久久中文字幕| 欧美老女人在线视频| 欧美激情视频网站| 亚洲午夜未删减在线观看| www.欧美三级电影.com| 国产97在线播放| 国产91网红主播在线观看| 91高清在线免费观看| 亚洲free嫩bbb| 国产精品白嫩美女在线观看| 成人日韩在线电影| 国内精品国产三级国产在线专| 日韩欧美精品免费在线| 亚洲视频欧美视频| 国产999精品视频| 久久九九国产精品怡红院| 日韩欧美在线视频| 国产成人精品久久亚洲高清不卡| 国产精品丝袜一区二区三区| 2018国产精品视频| 最新日韩中文字幕| 亚洲三级av在线| www.日本久久久久com.| 久久久久久欧美| 精品无人区太爽高潮在线播放| 色婷婷综合久久久久中文字幕1| 欧美性jizz18性欧美| 日本高清视频精品| 精品香蕉一区二区三区| 红桃av永久久久| 国产精品视频xxx| 日韩欧美精品免费在线| 在线观看久久av| 欧美情侣性视频| 久久久精品网站| 欧亚精品中文字幕| 亚洲免费视频观看| 国产91精品在线播放| 日韩毛片中文字幕| 欧美亚洲另类激情另类| 久久精品视频在线观看| 大伊人狠狠躁夜夜躁av一区| 91视频-88av| 欧美亚洲成人精品| 国产精品视频一区国模私拍| 欧美色videos| 亚洲第一免费网站| 国产精品视频999| 亚洲 日韩 国产第一| 亚洲最大成人网色| 欧美极品少妇xxxxⅹ免费视频| 51色欧美片视频在线观看| 欧美精品久久久久久久久久| 性金发美女69hd大尺寸| 国产在线视频91| 亚洲在线免费看| 97香蕉久久夜色精品国产| 91九色国产视频| 欧美性xxxx18| 亚洲一区二区三区sesese| 日韩精品在线免费播放| 久久这里有精品| 中国人与牲禽动交精品| 亚洲一区二区三区视频播放| 欧美激情中文字幕在线| 亚洲人成网7777777国产| 黄色一区二区三区| 91在线观看欧美日韩| 亚洲色图35p| 精品无码久久久久久国产| 97香蕉超级碰碰久久免费的优势| 国产97免费视| 精品国产欧美成人夜夜嗨| 成人在线国产精品| 国产精品亚洲美女av网站| 中文一区二区视频| 欧美国产激情18| 一本一本久久a久久精品综合小说| 中文字幕欧美日韩va免费视频| 成人免费视频网| 欧美综合第一页| 日韩精品www| 国产精品视频专区| 4444欧美成人kkkk| 国产成人综合精品在线| 欧美激情免费看| 亚洲第一精品夜夜躁人人躁| 欧美激情视频一区二区| 91社影院在线观看| 色中色综合影院手机版在线观看| 久久精品国产久精国产思思| 欧美日韩午夜激情| 国产精品美女久久| 亚洲视频在线观看视频| 91亚洲国产精品| 日韩av一区二区在线观看| 一区二区三区在线播放欧美| 亚洲男人天堂2024| 亚洲亚裔videos黑人hd| 成人h片在线播放免费网站| **欧美日韩vr在线| 欧美日韩国产精品| 国产精品久在线观看| 亚洲国产精品高清久久久| 国产成人久久久精品一区| 久久精品视频导航| 国产成人亚洲综合青青| 欧美激情视频一区二区三区不卡| 欧美性猛交xxxx免费看久久久| 成人亚洲欧美一区二区三区| 国产精品男人的天堂| 亚洲欧洲日本专区| 亚洲天堂av在线播放| 精品一区电影国产| 国模极品一区二区三区| 精品中文字幕在线观看| 国产精品视频区1| 成人妇女免费播放久久久| 伊人av综合网|