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:
原文地址:https://www.cnblogs.com/guchengfengyun/p/8119730.html