Git Product home page Git Product logo

syfmdbmodel's Introduction

SYFMDBModel CocoaPods

对FMDB扩展了对象的存储与获取, 设计采用分类的方式便于OC对象广泛应用, 本扩展实现了[1.OC对象存储到数据库、2.从数据库中取出OC对象、3.直接嵌套的对象存取、多重嵌套的对象存取]

使用SYFMDBModel

在Podfile中加入下面代码, 然后在终端执行pod install

platform :ios, '8.0'

target 'TargetName' do
pod 'SYFMDBModel', '~> 0.0.5'
end

支持数据类型

基础数据类型 结构体类型 OC对象类型 嵌套类型
实测过类型: int NSInteger NSUInteger long long int64_t CGFloat float double CGPoint CGSize CGRect NSString NSArray NSNumber NSDate NSData 直接嵌套对象 集合中嵌套对象
SQL存储类型: INTEGER INTEGER INTEGER INTEGER INTEGER REAL REAL REAL TEXT TEXT TEXT TEXT BLOB REAL REAL BLOB 另开表存储 另开表存储
存储结果举例: 1 1 1 1 1 1.1 1.1 1.1 {4, 4} {4, 4} {{4, 4}, {4, 4}} 文本 二进制 浮点型 时间戳 二进制 另开表存储 另开表存储

另外:存储到数据库之前属性声明是可变的, 从数据库中取值时得到的对象该属性仍然是可变的。

准备

pod好后在需要的模型类中导入#import <SYFMDBModel/NSObject+SY_FMDBExtension.h>, 需要在.m中重写

// 设置需保存到数据库中的属性名, 如都保存可直接返回YES
+ (BOOL)sy_savedPropertyName:(NSString *)name
{
    return YES;
}

如果存在嵌套类, 可在.m中重写

+ (NSDictionary<NSString *,NSString *> *)sy_nestPropertyMapList
{
    return @{@"属性名": @"嵌套的类名"};
}

不要忘记在嵌套类中也要执行与该步骤一样的操作

使用方式

插入数据

OC模型对象直接调用该实例方法可传入NSError的指针观察执行状况

First *first = [[First alloc] init];
NSError *error = nil;
BOOL result = [first sy_InsertWithError:&error];

查询数据

查询数据可查询整张表的所有数据、按条件查询某条数据、按条件查询某个字段

  • 查询所有数据: 返回搜寻的结果集合, 已内部处理转化为调用类的对象集合, 如有嵌套数据, 也一并转化处理好
NSError *error;
NSArray *arr = [First sy_FindAllWithError:&error];
  • 按条件查询某条数据 此处需要注意, 如果条件字段为TEXT类型, 别忘记加上''符号
NSError *error;
NSArray *arr = [First sy_FindByCondition:@"where name = 'SYFMDBModel'" error:&error];
  • 按条件查询某个字段 查询到的结果为一个集合
NSError *error;
NSArray *array = [First sy_FindName:@"SYFMDBModel" condition:@"" error:&error];

删除数据

  • 按条件删除
NSError *error = nil;
BOOL result = [First sy_RemoveByCondition:@"where name = 'SYFMDBModel'" andError:&error];
  • 实例对象删除 - 需是查询到数据对象才能使用实例方法删除
NSError *error = nil;
BOOL result = [first sy_RemoveWithError:&error];

更新数据

  • 实例对象更新 - 需是查询到数据对象才能使用实例方法
NSError *error = nil;
BOOL result = [first sy_UpdateWithError:&error];
  • 按条件更新某个字段
NSError *error = nil;
BOOL result = [Third sy_UpdateName:@"dateValue" newValue:nil condition:@"" error:&error];

注: 暂未支持字典进行嵌套,且集合嵌套只支持嵌套一个类

syfmdbmodel's People

Contributors

githubofgushengya avatar gushengya avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.