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

 更新时间:2017年11月13日 10:50:27   作者:小圭哥  
这篇文章主要为大家详细介绍了iOS中FMDB事务实现批量更新数据,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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 中NSTimer定时器的使用

    IOS 中NSTimer定时器的使用

    这篇文章主要介绍了IOS 中NSTimer定时器的使用的相关资料,希望通过本文能帮助到大家,能让大家彻底理解使用该方法,需要的朋友可以参考下
    2017-10-10
  • iOS10添加本地推送(Local Notification)实例

    iOS10添加本地推送(Local Notification)实例

    这篇文章主要为大家详细介绍了iOS10添加本地推送(Local Notification)实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • iOS App设计模式开发中策略模式的实现示例

    iOS App设计模式开发中策略模式的实现示例

    这篇文章主要介绍了iOS App设计模式开发中策略模式的实现示例,例子采用传统的Objective-C语言编写,需要的朋友可以参考下
    2016-03-03
  • iOS中使用NSProgress类来创建UI进度条的方法详解

    iOS中使用NSProgress类来创建UI进度条的方法详解

    NSProgress是iOS7以后引入的用于制作进度条的类,能够监听多个任务,这里就为大家带来iOS中使用NSProgress类来创建UI进度条的方法详解,需要的朋友可以参考下
    2016-06-06
  • Swift 2.1 为 UIView 添加点击事件和点击效果

    Swift 2.1 为 UIView 添加点击事件和点击效果

    本文主要介绍 Swift UIView,这里给大家提供代码示例作为参考为UIView 添加点击事件和点击效果,希望能帮助IOS开发的同学
    2016-07-07
  • iOS中利用CAEmitterLayer实现粒子动画详解

    iOS中利用CAEmitterLayer实现粒子动画详解

    粒子效果应该对现在很多人来说并不陌生,我们之前也分享了一些相关文章,下面这篇文章主要给大家介绍了关于iOS中利用CAEmitterLayer实现粒子动画的相关资料,文中介绍的非常详细,需要的朋友们下面来一起看看吧。
    2017-06-06
  • IOS应用内跳转系统设置相关界面的方法

    IOS应用内跳转系统设置相关界面的方法

    在iOS开发中,有时会有跳转系统设置界面的需求,例如提示用户打开蓝牙或者WIFI,提醒用户打开推送或者位置权限等,接下来通过本文给大家介绍IOS应用内跳转系统设置相关界面的方法,喜欢的朋友参考下
    2016-02-02
  • iOS Label实现文字渐变色效果

    iOS Label实现文字渐变色效果

    文字渐变色可以使整体的效果更上一个档次,最近在开发中就遇到了这个需求,所以整理出来,下面这篇文章主要给大家介绍了关于iOS Label实现文字渐变色效果的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-05-05
  • iOS开发生成二维码图片(附中间带有小图标二维码)

    iOS开发生成二维码图片(附中间带有小图标二维码)

    这篇文章主要介绍了iOS开发生成二维码图片(附中间带有小图标二维码)的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-10-10
  • iOS给border设置渐变色的方法实例

    iOS给border设置渐变色的方法实例

    这篇文章主要给大家介绍了关于iOS给border设置渐变色的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03

最新评论