realm数据库使用

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





转载于:https://www.cnblogs.com/lcl15/p/8288094.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107755.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java文档注释符号_java的注释符号

    java文档注释符号_java的注释符号1JAVA语法基础1.1标识符标识符可以简单的理解成一个名字。在Java中,我们需要标识代码的很多元素,包括类名、方法、字段、变量、包名等等。我们选择的那个名称就称为标识符,一个正确的标识符需要遵循以下规则:1.标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含@、%、空格等其它特殊字符2.不能以数字开头。如:123name就是不合法3.标识符严格区分大小写。如:tmooc和tMooc是两个不同的标识符4.标识符的命名最好能反映出其作用,做到见名知意。

    2022年10月7日
    0
  • eXtremeDB微秒级实时数据库简介「建议收藏」

    eXtremeDB微秒级实时数据库简介「建议收藏」eXtremeDB微秒级实时数据库简介 eXtremeDB实时数据库是美国McObject公司于上世纪九十年代末推出的全世界第一款全内存式实时数据库,特别为高性能、低开销、稳定可靠的极速实时数据管理而设计。 eXtremeDB的性能可以达到微秒一级的惊人速度。eXtremeDB能够达到这样惊人的极限速度,是由其对市场的独特理解、长期的行业经验、持续不断的创新精神和革命性的体系结构等…

    2022年8月31日
    1
  • 基于伯努利原理的速度监测芯片可用于天然气管道泄露检测

    基于伯努利原理的速度监测芯片可用于天然气管道泄露检测基于伯努利原理的速度监测芯片跟杭州迈煌科技用光纤水听器侦听传感技术类似,可用于天然气管道泄露检测。安装操作简单,可在不破坏现有管道下安装,工程易实现。

    2022年6月17日
    31
  • 《阿里巴巴Java开发手册》扫描插件正式发布–插件安装和使用分析

    本博文始发地址在公司论坛::《阿里巴巴Java开发手册》扫描插件正式发布–插件安装和使用分析“不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!”阿里巴巴于10月14日上午9:00在杭州云栖大会《研发效能峰会》上,正式发布《阿里巴巴Java开发手册》扫描插件。下面分享这个插件,希望更多的人使用,提高我们的代码/编码的规范!

    2022年2月26日
    48
  • java高级语言程序设计_高级程序设计语言包括

    java高级语言程序设计_高级程序设计语言包括Java程序设计(高级及专题)- XML

    2022年4月22日
    44
  • int、long、long long取值范围

    int、long、long long取值范围unsignedint0~4294967295int-2147483648~2147483647unsignedlong0~4294967295long-2147483648~2147483647longlong的最大值:9223372036854775807longlong的最小值:-9223372036854775808unsigned…

    2022年6月6日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号