[Realm]是由美国YCombinator孵化的创业团队历时几年打造,第一个专门针对移动平台设计的数据库*
[Realm]是一个跨平台的移动数据库引擎,目前支持iOS、Android平台,同时支持Objective-C、Swift、Java、React Native、Xamarin等多种编程语言* Realm并不是对SQLite或者CoreData的简单封装, 是由核心数据引擎C++打造,是拥有独立的数据库存储引擎,可以方便、高效的完成数据库的各种操作
Realm 数据库是 Realm 移动端数据库容器的一个实例。Realm 数据库可以是本地化的,也可以是可同步的。目前我研究的只是本地化的数据库。
看到这个realm的时候,我就想到了go/python语言中使用的第三方框架数据库xorm,它的表的创建方法跟realm简直是一模一样,同样是利用model来生成对应的表结构,唯一不同的是在移动端(iOS)上创建表的时候必须要生成一个主键,而xorm主键不是必须的。
realm在iOS上基本用法:数据库的创建、增删改查等操作
数据库创建:设置数据库所在的文件目录以及数据库的名称
(void)setDefaultRealmForUser:(NSString *)userName{
RLMRealmConfiguration *config = [RLMRealmConfiguration defaultConfiguration];
//使用默认的目录,使用用户名来替换默认的文件名
config.fileURL = [[[config.fileURL URLByDeletingLastPathComponent]URLByAppendingPathComponent:userName]URLByAppendingPathExtension:@"realm"];
NSString *version = [[NSUserDefaults standardUserDefaults] objectForKey:[NSString stringWithFormat:@"%@:%@",userName,@"ormVersion"]];
if (version.integerValue) {
config.schemaVersion = version.integerValue;
}
if (self.isSecu) {
config.encryptionKey = [self random