欢迎来到代码驿站!

iOS代码

当前位置:首页 > 移动开发 > iOS代码

iOS中FMDB事务实现批量更新数据

时间:2021-08-31 09:59:39|栏目:iOS代码|点击:

本文实例为大家分享了iOS中FMDB事务实现批量更新数据,供大家参考,具体内容如下

打开数据库(sqlite)

///打开数据库
+ (BOOL)openDataBase{
  
  _TYDatabase = [[FMDatabase alloc]initWithPath:[self databasePath]];
  if ([_TYDatabase open]) {
    return YES;
  }
  return NO;
}
///数据库路径
+ (NSString *)databasePath{
  NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
  NSString *dataPath = [documentPath stringByAppendingPathComponent:@"TY.SQLite"];
  NSFileManager *fileM = [NSFileManager defaultManager];
  if (![fileM fileExistsAtPath:dataPath]) {
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"TY" ofType:@"SQLite"];
    [fileM copyItemAtPath:filePath toPath:dataPath error:nil];
  }
  NSLog(@"%@",dataPath);
  return dataPath;
  
}

事务

/**
 事务
 arraySql:SQL语句数组
 */
- (void)beginTransaction:(NSArray *)arraySql;
{
  //// static FMDatabase *_TYDatabase = nil;
  BOOL isOpen=[_TYDatabase open];
  if (!isOpen) {
    NSLog(@"打开数据库失败!");
    return;
  }
  ///开始事物
  [_TYDatabase beginTransaction];
  BOOL isRollBack = NO;
  @try {
    for (int i = 0; i<arraySql.count; i++) {
      BOOL result = [_TYDatabase executeUpdate:arraySql[i]];
      if (!result) {
        NSLog(@"操作失败【%d】== SQL:%@",i,arraySql[i]);
      }
    }
  }
  @catch (NSException *exception) {
    isRollBack = YES;
    ///回滚
    [_TYDatabase rollback];
  }
  @finally {
    if (!isRollBack) {
      ///提交
      [_TYDatabase commit];
    }
  }
  [_TYDatabase close];
}


多线程事务

/**
 多线程事务
 arraySql:SQL语句数组
 */
+ (void)beginTransactionT:(NSArray *)arraySql{
  FMDatabaseQueue *databaseQueue = [FMDatabaseQueue databaseQueueWithPath:[self databasePath]];
  [databaseQueue inTransaction:^(FMDatabase *db, BOOL *rollback) {
    BOOL result = NO;
    for (int i = 0; i < arraySql.count; i++) {
      result = [_TYDatabase executeUpdate:arraySql[i]];
    }
    if (result) {
      NSLog(@"成功");
    }
  }];
}

上一篇:浅谈iOS推送证书生成pem文件(详细生成过程)

栏    目:iOS代码

下一篇:全面解析iOS应用中自定义UITableViewCell的方法

本文标题:iOS中FMDB事务实现批量更新数据

本文地址:http://www.codeinn.net/misctech/171282.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有