qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請?jiān)L問 http://qaseven.github.io/

          iOS數(shù)據(jù)庫操作之FMDB

            SQLite一種輕量級關(guān)系數(shù)據(jù)庫,在嵌入式系統(tǒng)中使用比較廣泛。
            在iOS中使用SQLite需要添加庫libsqlite3.0.dylib,并引入頭文件#import <sqlite3.h>
            FMDB對sqlit接口進(jìn)行了高級封裝,使用上更加友好簡潔。
            https://github.com/ccgus/fmdb
            FMDB包含以下文件:
          FMDatabase.h
          FMDatabase.m
          FMDatabaseAdditions.h
          FMDatabaseAdditions.m
          FMDatabasePool.h
          FMDatabasePool.m
          FMDatabaseQueue.h
          FMDatabaseQueue.m
          FMResultSet.h
          FMResultSet.m
            FMDB使用:
            1.FMDatabase 非線程安全,不要在多線程中使用FMDatabase的單例
          //用指定的數(shù)據(jù)庫名實(shí)例化一個(gè)數(shù)據(jù)庫,沒有此文件則創(chuàng)建
          FMDatabase *db = [FMDatabase databaseWithPath:filePath];
          "" 在臨時(shí)目錄創(chuàng)建一個(gè)空的數(shù)據(jù)庫,數(shù)據(jù)庫關(guān)閉后會自動刪除
          NULL 在內(nèi)存中創(chuàng)建一個(gè)空的數(shù)據(jù)庫,數(shù)據(jù)庫關(guān)閉后會自動刪除
          //打開數(shù)據(jù)庫,資源不足或權(quán)限不夠會打開失敗
          if (![db open])
          {
          NSLog(@"數(shù)據(jù)庫打開失敗");
          }
          //用完后需要關(guān)閉
          [db close];
            數(shù)據(jù)庫操作:
            查詢操作:SELECT,返回FMResultSet,nil表示查詢失敗;
          [db executeQuery:sql];
          FMResultSet *rs = [db executeQuery:@"SELECT * FROM TableName"];
          {
          while ([rs next])
          {
          //獲取查詢結(jié)果,即使結(jié)果只有一條
          }
          }


            更新操作:非SELECT操作都是更新操作,返回值類型BOOL,YES:成功,NO:失敗
            [db executeUpdate:sql];
            數(shù)據(jù)庫事務(wù):
            當(dāng)需要插入的數(shù)據(jù)較多時(shí),使用事務(wù)操作會比較快。
          [db beginTransaction];
          //需要執(zhí)行的操作
          [db commit];
          FMResultSet *rs;
          FMResultSet可以不手動關(guān)閉,當(dāng)數(shù)據(jù)庫關(guān)閉時(shí),會跟著關(guān)閉。
            2.FMDatabaseQueue 線程安全,所有的數(shù)據(jù)庫操作會在隊(duì)列中順序執(zhí)行
          [FMDatabaseQueue *queue = [FMDatabaseQueue databaseQueueWithPath:path];
          queue inDatabase:^(FMDatabase *db) {
          //
          }];
          queue inTransaction:^(FMDatabase *db, BOOL *rollback) {
          //
          }

          posted on 2013-11-20 10:45 順其自然EVO 閱讀(431) 評論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫

          <2013年11月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          1234567

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 汕头市| 黑河市| 皮山县| 秦皇岛市| 沙洋县| 赣州市| 抚顺市| 宕昌县| 嘉祥县| 阳原县| 固原市| 穆棱市| 桂平市| 阳新县| 玉屏| 卢湾区| 京山县| 正蓝旗| 建德市| 寻乌县| 开鲁县| 泸州市| 克东县| 梧州市| 綦江县| 黄梅县| 松阳县| 长泰县| 新绛县| 卢龙县| 奎屯市| 双流县| 宜兰市| 江门市| 峨眉山市| 长岭县| 潼南县| 贵阳市| 千阳县| 平顺县| 察隅县|