1 //插入批量数据,可启用事务
2 - (void)insertDataWithCount:(NSInteger)count isUseTransaction:(BOOL)isUse{
3 if (isUse) {
4 //手动启用事务
5 BOOL isError = NO;
6 @try {
7 //写可能出现异常的代码
8 [_dataBase beginTransaction];//手动开启一个事务
9 for (int i=0; i<count; i++) {
10 NSString *idStr =[NSString stringWithFormat:@"%d",i];
11 NSString *stName = [NSString stringWithFormat:@"student%d",i];
12 NSString *insertSql = @"insert into student(id,name) values(?,?)";
13 if (![_dataBase executeUpdate:insertSql,idStr,stName]) {
14 NSLog(@"insert error:%@",_dataBase.lastErrorMessage);
15 }
16 }
17 }
18 @catch (NSException *exception) {
19 //捕获到异常
20 NSLog(@"error:%@",exception.reason);
21 isError = YES;
22 [_dataBase rollback];//回滚,回到最初的状态
23 }
24 @finally {
25 //无论有没有异常,代码都会执行到此处
26 if (isError==NO) {
27 [_dataBase commit];//提交事务,让批量操作生效
28 }
29 }
30 }else{
31 //常规操作
32 for (int i=0; i<count; i++) {
33 NSString *idStr =[NSString stringWithFormat:@"%d",i];
34 NSString *stName = [NSString stringWithFormat:@"student%d",i];
35 NSString *insertSql = @"insert into student(id,name) values(?,?)";
36 if (![_dataBase executeUpdate:insertSql,idStr,stName]) {
37 NSLog(@"insert error:%@",_dataBase.lastErrorMessage);
38 }
39 }
40 }
41 }