结合 objc 的 runtime ,对 FMDB 的进一步封装,实现的 ORM 工具库。
在开发一个社交类项目的时候,项目有由大量实体需要使用数据库缓存。为避免编写大量的样板代码,开发该 ORM 工具。该工具在此项目中工作良好,并在公司其它项目中得到广泛使用。
当前版本仅支持 amr64 架构的设备。
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 |
注意:
NSInteger
、NSTimeInterval
等实际都是通过 typedef 定义的原声数据类型,这样的类型也是支持的。目前不支持
bool
(C++ 的 bool)、signed char
、char
、原生数据类型的指针(int *
、char *
等)、unsigned char
、id
、Class
及不在上边列表里的类类型。
下载该工程,把 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。
如果您有任何建议,可以通过任何方式联系我。