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

2025-05-29 0 45

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

打开数据库(sqlite)

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22
///打开数据库

+ (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;

}

事务

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36
/**

事务

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];

}

多线程事务

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16
/**

多线程事务

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(@"成功");

}

}];

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 iOS中FMDB事务实现批量更新数据 https://www.kuaiidc.com/89801.html

相关文章

发表评论
暂无评论