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




    
    
  • 相关阅读:
    python中函数部分简介与定义(二)
    python中函数部分简介与定义(一)
    db2 不允许在自动存储器表空间上执行 SET TABLESPACE CONTAINERS 命令。的解决办法
    JQuery中$.ajax()方法参数详解
    jquery post 同步异步总结
    js设置height随窗口大小改变
    关于POI的系统整理
    POI 实现导出excel表
    转载>>JQuery EasyUI datagrid 合并表头处理
    iframe标签用法详解(属性、透明、自适应高度)
  • 原文地址:https://www.cnblogs.com/lcl15/p/8288094.html
Copyright © 2011-2022 走看看