iOS中FMDB事务实现批量更新数据
2017-11-13 10:50
1856 查看
本文实例为大家分享了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(@"成功"); } }]; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- C#使用SqlDataAdapter 实现数据的批量插入和更新
- php+mysqli实现批量执行插入、更新及删除数据的方法
- EntityFramework:支持同一事务提交的批量删除数据实现思路
- iOS开发:一个高仿美团的团购ipad客户端的设计和实现(功能:根据拼音进行检索并展示数据,离线缓存团购数据,浏览记录与收藏记录的批量删除等)
- php+mysqli实现批量执行插入、更新及删除数据的方法
- SqlDataAdapter.update结合事务(SqlTransaction)批量更新数据
- Mysql 一条SQL语句实现批量更新数据,update结合case、when和then的使用案例
- iOS FMDB 查询 批量更新
- php+mysqli实现批量执行插入、更新及删除数据的方法
- SQL脚本实现两张关联数据表之间批量更新UPDATE
- Mysql 一条SQL语句实现批量更新数据,update结合case、when和then的使用案例
- oracle存储过程实现根据已有数据批量更新另一批数据
- EF结合SqlBulkCopy实现高效的批量数据插入 |EF插件EntityFramework.Extended实现批量更新和删除
- MVC4实现批量更新数据
- 实现了用正则表达式批量替换更新数据库数据
- php批量添加数据与批量更新数据的实现方法
- 【iOS】【FMDB】【sqlite】try catch实现事务处理
- ios FMDB 更新二进制图片数据
- FMDB性能优化问题。使用FMDB事务批量更新数据库速度问题。(亲测可以呀---740条数据用和不用事务效率差别20倍+)
- 安卓与IOS通过hessian接口实现用友系统移动手机订单3JDBC跨数据库库事务处理