Skip to content

[Deprecated] 结合 objc 的 runtime ,对 FMDB 进一步封装,实现的 ORM 库,可方便快捷的对单个模型进行 CRUD 操作。

License

Notifications You must be signed in to change notification settings

XjShi/SXJDatabaseManager

Repository files navigation

SXJDatabaseManager

结合 objc 的 runtime ,对 FMDB 的进一步封装,实现的 ORM 工具库。

开发背景

在开发一个社交类项目的时候,项目有由大量实体需要使用数据库缓存。为避免编写大量的样板代码,开发该 ORM 工具。该工具在此项目中工作良好,并在公司其它项目中得到广泛使用。

细节

支持的架构

当前版本仅支持 amr64 架构的设备。

支持的数据类型及 type affinity

type type affinity
int integer
short integer
long integer
long long integer
unsigned int integer
unsigned short integer
unsigned long integer
unsigned long long integer
float real
double real
BOOL integer
NSString text
NSNumber text
NSData blob

注意:NSIntegerNSTimeInterval 等实际都是通过 typedef 定义的原声数据类型,这样的类型也是支持的。

目前不支持bool(C++ 的 bool)、signed charchar、原生数据类型的指针(int *char *等)、unsigned charidClass及不在上边列表里的类类型。

安装

下载该工程,把 DB 目录及其下的四个文件添加进你的工程中即可。

用法

@interface Rectangle : NSObject

@property (nonatomic, assign) NSInteger width;
@property (nonatomic, assign) NSInteger length;
@property (nonatomic, copy) NSString *name;

@end

@implementation Rectangle

@end

获取SXJDatabaseManager对象:

SXJDatabaseManager *manager = [SXJDatabaseManager sharedManager];

创建Rectange对应的表:

[manager createTable:[Rectangle class]];

创建Rectange对应的表,并指定主键:

[manager createTableWithClass:[Rectangle class] primaryKeyNameArray:@[@"name"]];

向表中插入数据:

Rectangle *rect = [Rectangle new];
rect.name = @"rectangle1";
rect.width = 10;
rect.length = 25;
[manager insertModel:rect];

删除数据:

NSDictionary *cond = @{@"name": @"rectangle1"};
[manager deleteRecordFromTable:[Rectangle class] condition:cond];

更多用法,请直接参考SXJDatabaseManager.h中的api。

如果您有任何建议,可以通过任何方式联系我。

About

[Deprecated] 结合 objc 的 runtime ,对 FMDB 进一步封装,实现的 ORM 库,可方便快捷的对单个模型进行 CRUD 操作。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published