zoukankan      html  css  js  c++  java
  • IOS 数据库(FMDB)

    FMDB概述:

    1.sqlite3的封装,比sqlite3更好用

    2.基于oc的代码,使用更方便

    3.基于队列,保证线程安全

    FMDB类结构图:

    使用步骤

    在 FMDB 中有三个重要的类:

    • FMDatabase:是一个提供 SQLite 数据库的类,用于执行 SQL 语句。
    • FMResultSet:用在 FMDatabase 中执行查询的结果的类。
    • FMDatabaseQueue:在多线程下查询和更新数据库用到的类。

    数据库创建

    // 创建数据库示例
    FMDatabase *db = [FMDatabase databaseWithPath:@"/tmp/tmp.db"];

    数据库的表的创建,添加,删除更新

     BOOL update = [_db executeUpdate:@"update t_health set name = ?  where phone = '%@'",@"jacob111"];  

    数据库的查询

    FMResultSet *set = [_db executeQuery:@"select * from t_health "];  
        while ([set next]) {  
            NSString *name =  [set stringForColumn:@"name"];  
            NSString *phone = [set stringForColumn:@"phone"];  
            NSLog(@"name : %@ phone: %@",name,phone);  
        } 

    数据库多条语句的执行

    [queue inDatabase:^(FMDatabase *db) {
        [db executeUpdate:@"INSERT INTO t_student(name) VALUES (?)", @"Jack"];
        [db executeUpdate:@"INSERT INTO t_student(name) VALUES (?)", @"Rose"];
        [db executeUpdate:@"INSERT INTO t_student(name) VALUES (?)", @"Jim"];
        
        FMResultSet *rs = [db executeQuery:@"select * from t_student"];
        while ([rs next]) {
            //
        }
    }];

    其它

    FMResultSet 提供了很多方便的方法来查询数据:

    • intForColumn:
    • longForColumn:
    • longLongIntForColumn:
    • boolForColumn:
    • doubleForColumn:
    • stringForColumn:
    • dateForColumn:
    • dataForColumn:
    • dataNoCopyForColumn:
    • UTF8StringForColumn:
    • objectForColumn:
  • 相关阅读:
    C++学习总结 复习篇2
    C++ 学习总结 复习篇
    Git 安装与使用
    前两周工作总结
    [bzoj1033] [ZJOI2008]杀蚂蚁antbuster
    [bzoj1031] [JSOI2007]字符加密Cipher
    [bzoj1030] [JSOI2007]文本生成器
    [bzoj1029] [JSOI2007]建筑抢修
    [bzoj1028] [JSOI2007]麻将
    [bzoj1026] [SCOI2009]windy数
  • 原文地址:https://www.cnblogs.com/guchengfengyun/p/8119730.html
Copyright © 2011-2022 走看看