美文网首页
2018-11-22 ios的FMDB数据库使用事务操作

2018-11-22 ios的FMDB数据库使用事务操作

作者: sll_ | 来源:发表于2018-11-22 17:07 被阅读30次

    之前本菜鸡一直操作数据库都是直接fmdb语句就开始搞起来,今天遇到一个问题,数据过多(1k+)的写入时间会很久,然后本菜鸡又学会了一种 对数据库进行事物操作。之前每次executeUpdate都是一次事务操作,过程是:开始新事务-->插入数据-->提交事务。我们向数据库中插入多少条数据,这个过程就会执行多少次,当数据量变大的时候时间就会变得超级长。所以要先把所有的操作放在缓存里面,然后把整个缓存提交,进行一次事物操作,时间就会大大缩短。

    代码如下:

    
    //NSLog(@"**********开始事务操作*************");
    [_fsXLdb shouldCacheStatements]; // 开启缓存
    [_fsXLdb beginTransaction]; // 事务操作
    BOOL isRollBack =NO;
    @try{
        for(FSZDModel*modelindbMA) {
        BOOL flag = [_fsXLdb executeUpdate:@"insert into FUSHAN_STATION (STATION_ID,XL,XLMC ,ZD ,ZDNAME ,SXX ,JD ,WD,LAT,LON) values(?,?,?,?,?,?,?,?,?,?)",model.STATION_ID,model.XL,model.XLMC,@(model.ZD),model.ZDNAME,model.SXX,model.JD,model.WD,[NSString stringWithFormat:@"%f",coor.latitude],[NSString stringWithFormat:@"%f",coor.longitude]];
        //            if (flag) {
         //                NSLog(@"插入成功");
         //            }else{
        //                NSLog(@"插入失败");
        //            }
                }
         }
    @catch(NSException *exception) {
          isRollBack =YES;
          [_fsXLdbrollback];// 回滚
          }
    @finally{
        if(!isRollBack) {
            [_fsXLdbcommit];
          }
        }
    

    相关文章

      网友评论

          本文标题:2018-11-22 ios的FMDB数据库使用事务操作

          本文链接:https://www.haomeiwen.com/subject/epzlqqtx.html