<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經轉移至github,大家請訪問 http://qaseven.github.io/

    數據庫類庫FMDB

    前言
      SQLite (http://www.sqlite.org/docs.html) 是一個輕量級的關系數據庫。iOS SDK很早就支持了SQLite,在使用時,只需要加入 libsqlite3.dylib 依賴以及引入 sqlite3.h 頭文件即可。但是,原生的SQLite API在使用上相當不友好,在使用時,非常不便。于是,開源社區中就出現了一系列將SQLite API進行封裝的庫,而FMDB (https://github.com/tryingx/fmdb-master) 則是開源社區中的優秀者。
      第一步 引入:sqlite3的類庫
      第二步 引入:FMDB的類庫
      主要包括以下幾方面
      引入文件結束以后就可以使用了,使用很簡單
      第一步 建立一個數據庫類
    1 NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; // 獲取document文件的路徑
    2 /**
    3  *  強調一點就是對于數據庫的名:我們可以用"" 或用 NULL
    4  *
    5  *  An empty string (@""). An empty database is created at a temporary location. This database is deleted with the FMDatabase connection is closed.
    6  也就是說如果我們使用(@""),會創建一個臨時數據庫,當我們數據庫關閉后會自動刪除
    7  NULL. An in-memory database is created. This database will be destroyed with the FMDatabase connection is closed.
    8  在內存中給你創建一個數據庫
    9  */
    10 NSString *dbPath = [docPath stringByAppendingPathComponent:@"student.sqlite"];
    11 NSLog(@"%@", dbPath); // 拼接字符串
    12 FMDatabase *dataBase = [FMDatabase databaseWithPath:dbPath];
    13 [dataBase open];
    14 // 用來判斷數據庫打開是否成功
    15 if (![dataBase open]) {
    16     NSLog(@"error");
    17 }
      第二步 就是執行一些常用的操作
      常用操作:
      1.創建一個表
      NSString *sql = @"CREATE TABLE student(_id Integer primary key, name text, password text, email text)";
      BOOL isCreateTable = [dataBase executeStatements:sql];
      NSLog(@"%d", isCreateTable );
      2.插入數據
      NSString *sqlInsert = @"INSERT INTO student (name, password, email) values ('寶貝', '1232', '3343243')";
      BOOL isInsertOK = [dataBase executeStatements:sqlInsert];
      NSLog(@"%d", isInsertOK );

     3.批量的創建表和插入數據
    NSString *sql1 = @"create table bulktest1 (id integer primary key autoincrement, x text);"
    "create table bulktest2 (id integer primary key autoincrement, y text);"
    "create table bulktest3 (id integer primary key autoincrement, z text);"
    "insert into bulktest1 (x) values ('XXX');"
    "insert into bulktest2 (y) values ('YYY');"
    "insert into bulktest3 (z) values ('ZZZ');";
    [dataBase executeStatements:sql1];
      當然也可以通過數組的方式插入數據
      NSArray *stuentInfo = [NSArray arrayWithObjects:@"大傻瓜",@"213",@"123456@qq.com", nil nil];
      [dataBase executeUpdate:@"insert into student (name, password, email) values (?,?,?)" withArgumentsInArray:stuentInfo];
      4.匹配的方式插入數據
      NSString *sqlInsert = @"INSERT INTO student (name, password, email) values (?,?,?)";
      BOOL flag = [dataBase executeUpdate:sqlInsert, @"大寶貝", @"123", @"654321@qq.com"];
      NSLog(@"%d", flag);
      5.1.查詢所有數據
      FMResultSet *result = [dataBase executeQuery:@"SELECT * FROM student"];
      [self showInfo:result];
      [result close];
    - (void)showInfo:(FMResultSet *)result
    {
    while ([result next]) {
    int _id = [result intForColumnIndex:0];
    NSLog(@"id : %d", _id);
    NSString *name = [result stringForColumnIndex:1];
    NSLog(@"name : %@", name);
    NSString *password = [result stringForColumnIndex:2];
    NSLog(@"password : %@", password);
    NSString *email = [result stringForColumnIndex:3];
    NSLog(@"email : %@", email);
    }
    }
      5.2.查詢指定信息
      NSString *sqlInsert = @"SELECT * from  student where name = %@";
      FMResultSet *result = [dataBase executeQueryWithFormat:sqlInsert, @"寶貝"];
      NSLog(@"%@", result);
      [self showInfo:result];
      6.執行刪除操作
      NSString *sql = @"delete from student where name = ?";
      [dataBase executeUpdate:sql,@"寶貝"];
      執行更新操作的步驟和刪除操作一樣,只不過sql語句不同而已
      重要注意事項是:1 使用完數據庫后記得關閉
      2 查詢結果完場后result也得記得關閉

    posted on 2014-05-14 10:12 順其自然EVO 閱讀(200) 評論(0)  編輯  收藏 所屬分類: 數據庫

    <2014年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久久久亚洲AV无码专区首| 亚洲视频在线精品| 羞羞漫画在线成人漫画阅读免费| 最近中文字幕免费完整 | 国产高清免费观看| 国产亚洲精品VA片在线播放| 国产精品视频永久免费播放| 亚洲国产日韩精品| 黄网址在线永久免费观看 | 中文字幕精品亚洲无线码一区| 日本在线观看免费高清| 亚洲人成影院在线无码观看| 国产成人无码免费看片软件| 亚洲啪啪综合AV一区| 精品国产成人亚洲午夜福利| 最近中文字幕mv免费高清视频7| 日本亚洲免费无线码 | 麻豆亚洲AV成人无码久久精品 | 国产精品久久久久久亚洲小说| 国产一级高清视频免费看| 一级特黄录像视频免费| 久久亚洲国产午夜精品理论片| 四虎国产精品永久免费网址| 亚洲精品午夜在线观看| 成全视频在线观看免费高清动漫视频下载| 亚洲日韩看片无码电影| 全部免费毛片在线| 国产免费无码一区二区| 亚洲天堂2016| 亚洲乱亚洲乱少妇无码| 亚洲精品无码mⅴ在线观看| 亚洲av再在线观看 | 我要看WWW免费看插插视频| 污网站在线免费观看| 亚洲爱情岛论坛永久| 午夜影视在线免费观看| 91福利免费网站在线观看| 亚洲不卡视频在线观看| 亚洲色偷拍区另类无码专区| 日韩精品无码免费一区二区三区 | 亚洲日本乱码在线观看|