欢迎光临
我们一直在努力

TODBModel——基于FMDB的模型化数据库

建站超值云服务器,限时71元/月

TODBModel——基于FMDB的模型化数据库

项目介绍:

TODBModel

==============
CocoaPods

TODBModel是基于FMDB开发的数据库模型系统,它把数据库操作完全融入模型中。该类的任何子类将自动创建并维护数据库,无需懂得任何SQL语法及概念即可进行数据库操作。支持字符串、整型、浮点型、NSData、NSDate、UIImage、NSArray、NSDictionary存储。

模型缓存+数据库异步读写,创建1000条数据仅需0.02秒。

image

快速集成

推荐使用cocoapod安装

pod 'TODBModel'

如何使用

1、创建一个对象,继承TODBModel。

2、为对象添加属性

//  AddressModel.h

#import "TODBModel.h"

@interface AddressModel : TODBModel

@property (nonatomic,strong) NSString *name;
@property (nonatomic,assign) int addressID;
@property (nonatomic,strong) NSDate *editDate;
@property (nonatomic,strong) NSString *mobile;
@property (nonatomic,strong) NSString *address;

@end

3、覆盖+ (NSString *)db_pk方法,并返回主键对应的属性。

//  AddressModel.m

#import "AddressModel.h"

@implementation AddressModel

+ (NSString *)db_pk{
    return @"addressID";
}

@end

4、增删改

//创建
AddressModel *model = [AddressModel crateModel];
//保存
[model save:^(TODBModel *model) {
    //保存成功
}]
//删除
[model del:^(TODBModel *model) {
    //删除成功
}]

5、查询

//查询全部
[AddressModel allModels:^(NSArray<TODBModel *> *models) {
    //获取成功
}];
//搜索name中或者mobile中包含“123”的数据
TODBCondition *condition1 = [TODBCondition condition:@"name" like:@"%123%"];
TODBCondition *condition2 = [TODBCondition condition:@"mobile" like:@"%123%"];
[AddressModel search:[TODBOrCondition conditionWith:condition1 or:condition2] callBack:^(NSArray<TODBModel *> *models) {
    //搜索完成
}];

Swift

在Swift中,非指针对象(Int,Float,Double,Boolean等)请不要使用“?”、“!”修饰属性。否则可能导致该字段无法插入数据库

//  AddressModel.swift

import UIKit
import TODBModel

class AddressModel: TODBModel {
    var name: String = "";
    var addressID: Int = 0;
    var age: Float = 0;

    var editDate: NSDate!;
    var mobile: String!;
    var address: String!;

    public static override func db_pk() -> String{
        return "addressID";
    }
}

特别说明

TODBModel基于内存唯一原理设计,因此请不要使用alloc方式创建对象,而应该使用以下方法创建

-modelByKey:
-modelByKey: allowNull:
-createModel
-createModels:

多次调用-modelByKey:来获取同一key对应的对象时,将获得指向同一内存地址的指针实例。

更新日志

version 0.3

0、兼容swift
1、修复了使用runtime时的内存回收问题

version 0.2

0、完善了DEMO
1、新增删除
2、新增查询功能,包括模糊查询、复合条件查询
3、新增批量添加功能
4、添加对部分有较高延迟的指令的异步执行方法
5、优化了性能,修复了已知bug

version 0.1.1

0、增加数据删除功能
1、修复一个初始化阶段导致死循环的bug

version 0.1

0、自动创建、维护模型对应的数据库。启动时检测模型变化,如属性发生变更则自动更新数据表。
1、支持NSString、NSDate、NSData、CGFloat、NSInteger、float、double等基本类型。
2、支持任何实现了NSCoding接口的对象。
3、特别优化了TODBModel的子类作为属性的支持。

github地址:https://github.com/TonyJR/TODBModel

code4app

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » TODBModel——基于FMDB的模型化数据库
分享到: 更多 (0)