• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
hellowbabybaby
博客园    首页    新随笔    联系   管理    订阅  订阅

UI18-数据库操作:SQL FMDB

  (一 )    FMDB 的打开数据库,创建表,查询

 

(二)执行语句:

(三)存储数据,进行model的归档,反归档,并且实现nscoding协议   一个对象可以转化为data.实质上实现了NScoding协议  一个对象要遵守NSCoding协议,实现协议的方法,才能转成NSData.

(四) 实现encoding协议两个方法:

(五) 抽离相同代码,使用方法,或者使用Block 调用重复的代码,参数和返回值设置好.

1/外键 约束。

(六)  FMDB中---多线程操作

  • 如果要进行海量操作的话,就要用到子线程来加快速度
  • 但是数据库操作海量数据的话,比如说插入100000条数据的话,可以开启多个子线程来操作,但是必须使用同步线程,让多个线程逐一执行,而不致于引起数据库数据混乱。
  • FMDatabaseQueue使用这个类
    //FMDatabaseQueue的创建
    FMDatabaseQueue *queue = [FMDatabaseQueue databaseQueueWithPath:path];
  • 基本操作
    [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]) {
            // …
        }
    }];
  • 使用事务
    [queue inTransaction:^(FMDatabase *db, BOOL *rollback) {        [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]) {
            // …
        }
    }];
  • 事务回滚
    • *rollback = YES;

 

posted @ 2015-12-15 22:06  hellowbabybaby  阅读(291)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3