zoukankan      html  css  js  c++  java
  • realm数据库使用

    Realm的优点

      1.跨平台:Realm可同时兼顾iOS和Android两个平台,使用时不用考虑内部数据的架构不同。

      2.简单易用:相比Core Data 和 SQLite 晦涩难懂的代码与知识要简单的多,可以减少开发成本

      3.可视化:可以使用Realm Browser ,随时查看数据库中的数据

      4.查询速度极快

    Realm支持OC和Swift语言开发。

    使用CocoaPods进行管理Realm第三方库

    platform :ios , ‘8.0’
    target ‘项目名称’ do
    pod 'Realm'
    end 
     
    RLMRealm:Realm是框架的核心所在,该类提供默认的构造方法defaultRealm
    RLMRealm *reamlm = [RLMRealm defaultRealm];

    RLMObject :创建存储的数据模型时,需要继承这个类

    #import <Realm/Realm.h>

    @interface ACLModel : RLMObject

    @property NSString *systemSn;
    @property NSInteger permissionValue;
    @property NSString *moduleSn;

    @end

    写操作事务(Write Transactions):数据库中的所有操作(插入,查询,删除,修改)

    查询(Queries):要在数据库中检索信息

     
    创建数据库,并设置数据库的名字和存储的地方
    - (void)creatDataBaseWithName:(NSString *)databaseName {
    NSArray *docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *path = [docPath objectAtIndex:0];
    NSString *filePath = [path stringByAppendingPathComponent:databaseName];
    NSLog(@"数据库目录 = %@",filePath);
    RLMRealmConfiguration *config = [RLMRealmConfiguration defaultConfiguration];
    config.fileURL = [NSURL URLWithString:filePath];
    [RLMRealmConfiguration setDefaultConfiguration:config];
    }
     
    设置主键需要重写
    + (NSString *)primaryKey {
        return @"id";
    }

    单个写入操作将会阻塞其余的操作
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
      RLMRealm *realm = [RLMRealm defaultRealm];
      [realm transactionWithBlock:^{ [
        realm addObject: Car];
        }];
      });
    数据的查询

    RLMResults *results = [ACLModel objectsWhere:@"systemSn = 'assets' AND moduleSn = 'check' AND permissionValue = 0"];
    NSLog(@"======%lu",(unsigned long)results.count);




    
    
  • 相关阅读:
    Java实现 LeetCode 50 Pow(x,n)
    Java实现 LeetCode 50 Pow(x,n)
    Java实现 LeetCode 49 字母异位词分组
    Java实现 LeetCode 49 字母异位词分组
    Java实现 LeetCode 49 字母异位词分组
    Java实现 LeetCode 48 旋转图像
    Java实现 LeetCode 48 旋转图像
    Java实现 LeetCode 48 旋转图像
    Java实现 LeetCode 47 全排列 II(二)
    Java实现 LeetCode 47 全排列 II(二)
  • 原文地址:https://www.cnblogs.com/lcl15/p/8288094.html
Copyright © 2011-2022 走看看