MagicalRecord初级入门

            最近公司的新项目,刚起步.要用到数据持久化.对于前段开发写sql语句是最头疼的了,当然如果你是喜欢喜sql得那么可以不用 继续看下去了.


这几天一直在想怎么,创建好的Model对象通过映射,不用写sql语句来操作数据库,后来才想起来,苹果的CoreData不都已经实现了吗!! 但是 CoreData使用起来,代码很长,很不方便.

所以推荐 MagicalRecord,一个对CoreData 封装的库.省去了CoreData 大量的操作代码.更重要的是 :

再也不用写 @"增删改查"


1、集成 MagicalRecord

推荐大家通过CocoaPods 管理第三方库.

在你的podfile文件中添加: 

pod 'MagicalRecord', '~> 2.3.0'


2、在我们的工程当中使用它吧

在A ppdelegate 当中 初始化它,他会 为我们建好 数据库.


MagicalRecord初级入门_第1张图片
1.创建工程

创建的时候不要勾选CoreData,因为会在Appdelegate自动生成CoreData代码.如果不熟悉CoreData机制的可以线去了解一下.


2.创建一个Data Model

这个可以理解为创建一个数据库,它会为我们创建一个数据库.


MagicalRecord初级入门_第2张图片
3.创建一个实体

选择我们刚刚创建好的Data Model,然后我们在Model 但中创建一个Person实体,每个实体对应我们数据库当中的一个表.相当于我们在数据库当中创建了一个 table name = Person.

Person 当中有两个字段 name 和 age,主键自增.


我们创建好CoreData索要用到的东西.接下来开始操作MagicalRecord吧!

[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:@"Model.sqlte"];

初始化MagicalRecord,他会为我们创建好数据库,存在沙盒当中,并且初始化关联数据库的NSManagedObjectContext 上下文.

上下文是我们使用CoreData操作数据库必须要用到的.CoreData机制的可以去看一下,很简单.

接下来我们可以向数据库当中插入数据库了.


插入数据

Person* per = [Person MR_createEntity];

per.name=@"钢蛋儿";

per.age=@18;

[[NSManagedObjectContext MR_defaultContext]MR_saveToPersistentStoreAndWait];

这里我遇到一个问题就是用

MR_saveOnlySelfAndWait

保存时,并不会直接写入数据库当中.真是坑坑坑.运行后可以去文件夹查看数据库,按照我的操作流程你应该已经成功了.


查找数据

NSArray* pers = [Person MR_findAllSortedBy:@"age" ascending:YES];

查找某一字段 并且按升序排序 后面的参数,YES 为升序.

NSArray* pers_ALL = [Person MR_findAll];

查找数据库当中所有数据.

NSArray* per_Age = [Person MR_findByAttribute:@"age"withValue:@18];

查找所有age属性为18的数据.

条件查找也可以的,暂时还没有总结.下次更新补充.


更新数据

NSArray* pers = [Person MR_findByAttribute:@"name"withValue:@"钢蛋儿"];

for(Person* per in pers) {

per.name=@"GangDaner";

}

[[NSManagedObjectContext MR_defaultContext]MR_saveToPersistentStoreAndWait];

我们查找所有叫钢蛋儿的,然后为他们更改一个英文名字.修改之后别忘记保存,因为如果不保存所有数据都是在内存当中,并没有写入数据库.


删除数据

删除数据道理也是一样

NSArray* pers = [Person MR_findByAttribute:@"name"withValue:@"钢蛋儿"];

for(Person* per in pers) {

per.name=@"GangDaner";

}

[[NSManagedObjectContext MR_defaultContext]MR_saveToPersistentStoreAndWait];


3.到这里MagicalRecord使用就介绍完了,如果下个项目有想使用CoreData的同学可以试试这个,真的很好用.


你可能感兴趣的:(MagicalRecord初级入门)