美文网首页
reaml数据库的基本用法

reaml数据库的基本用法

作者: 赤焰军少帅林殊 | 来源:发表于2017-10-31 16:27 被阅读27次

    附上github链接https://github.com/15118130757/ReamlUser
    导入库 并添加头文件 创建模型对象( 数据库可视化软件Realm Browser AppStore直接下载)

    #import <Realm/Realm.h>
    

    打开数据库并做版本数据库编号

    RLMRealmConfiguration *config =[RLMRealmConfiguration defaultConfiguration];
        // 数据库本地路径
        config.schemaVersion=2;
        // 设置闭包,这个闭包将会在打开低于上面所设置版本号的 Realm 数据库的时候被自动调用
        config.migrationBlock = ^(RLMMigration *migration, uint64_t oldSchemaVersion) {
            NSLog(@"%llu",oldSchemaVersion);
            
            // 目前我们还未进行数据迁移,因此 oldSchemaVersion == 0
            if (oldSchemaVersion < 1) {
                // 什么都不要做!Realm 会自行检测新增和需要移除的属性,然后自动更新硬盘上的数据库架构
            }
        };
        
        [RLMRealmConfiguration setDefaultConfiguration:config];
        
        // 现在我们已经告诉了 Realm 如何处理架构的变化,打开文件之后将会自动执行迁移
        [RLMRealm defaultRealm];
        NSLog(@"%@",  config.fileURL);
    

    存数据

    NSLog(@"存数据");
        NSString* str=nil;
        for (int i=0; i<2; i++) {
            
            if (i==0) {
                str=@"15118130757";
            }else{
                str=@"15060193253";
            }
            _messreaml=[[Messagereaml alloc]init];
            _messreaml.sex=@"男";
            _messreaml.nickName=@"萌妹子";
            _messreaml.otherDwID=str;
            RLMResults<Messagereaml *> *temp = [Messagereaml objectsWhere:@"otherDwID = %@",str];
            NSLog(@"%@",temp);
            if (temp.count == 0) {
                [[RLMRealm defaultRealm] transactionWithBlock:^{
                    [[RLMRealm defaultRealm] addObject:_messreaml];
                }];
            } else {
                NSLog(@"数据库已经有该条数据不需要再存了");
            }
        }
    

    查询数据

      NSLog(@"查询");
        NSString* strid=@"15118130757";
        _messreaml=[[Messagereaml objectsWhere:@"otherDwID=%@",strid]firstObject];
        NSLog(@"取出来的数据%@",_messreaml.sex);
    

    更改数据

    NSLog(@"改数据");
        NSString* strid=@"15118130757";
        _messreaml=[[Messagereaml objectsWhere:@"otherDwID=%@",strid]firstObject];
        NSLog(@"取出来的数据%@",_messreaml.sex);
        //改数据
        if (_messreaml.sex) {
            [[RLMRealm defaultRealm] transactionWithBlock:^{
                _messreaml.nickName=@"白富美";
                //再存
                [[RLMRealm defaultRealm] addObject:_messreaml];
            }];
        }
       
        //        dispatch_async(dispatch_queue_create("background", 0), ^{//开启线程存
        //            @autoreleasepool {
        //
        //                Messagereaml* messreaml=[[Messagereaml objectsWhere:@"otherDwID = %@",str] firstObject];
        //                RLMRealm *realm = [RLMRealm defaultRealm];
        //                [realm beginWriteTransaction];
        //                messreaml.sex=@"女";
        //                [realm commitWriteTransaction];
        //
        //            }
        //        });//更新某一条数据 这个写法与上面的写法是一样的
    

    删除数据

     NSLog(@"删除某一条数据");
        NSString* str=@"15118130757";
        RLMResults<Messagereaml *> *temp = [Messagereaml objectsWhere:@"otherDwID = %@",str];
        RLMRealm *realm = [RLMRealm defaultRealm];
        [realm beginWriteTransaction];
        [realm deleteObjects:temp];//删除某条数据
        [realm commitWriteTransaction];
    

    删除所有数据

        RLMRealm *realm = [RLMRealm defaultRealm];
        [realm beginWriteTransaction];
        [realm deleteAllObjects];//删除所有数据
        [realm commitWriteTransaction];
    

    查询所有数据

        RLMResults<Messagereaml *> *temp = [Messagereaml allObjects];
        NSLog(@"查询所有数据%@",temp);
    

    相关文章

      网友评论

          本文标题:reaml数据库的基本用法

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