LSMiniDB 是一个简单易用且简约的数据库。易于从代码中配置。所有数据库操作(插入/选择/更新/删除)都在后台线程上以 NSDictionary 对象异步执行。
- (void)configureDatabase
{
NSDictionary *userTable = @{ @"uuid" : @(NSStringAttributeType),
@"name" : @(NSStringAttributeType),
@"score" : @(NSInteger32AttributeType),
@"date" : @(NSDateAttributeType) };
NSDictionary *eventTable = @{ @"name" : @(NSStringAttributeType),
@"date" : @(NSDateAttributeType) };
NSDictionary *model = @{ @"user" : userTable,
@"event" : eventTable };
[[LSMiniDB defaultInstance] configureWithModel:model fileName:@"database.db"];
}
NSDictionary *user = @{ @"uuid" : [NSUUID UUID].UUIDString,
@"name" : @"John",
@"score" : @55,
@"date" : [NSDate new] };
// insert
[[LSMiniDB defaultInstance] insertObject:user table:@"user" completion:^{
NSLog(@"inserted user");
}];
// select
[[LSMiniDB defaultInstance] selectObjectsFromTable:@"user" predicate:[NSPredicate predicateWithFormat:@"name == %@", @"John"] sortDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"score" ascending:NO]] limit:5 completion:^(NSArray<NSDictionary *> *objects) {
NSLog(@"selected users");
}];
// update
[[LSMiniDB defaultInstance] updateObject:user table:@"user" predicate:[NSPredicate predicateWithFormat:@"uuid == %@", user[@"uuid"]] completion:^{
NSLog(@"updated user");
}];
// delete
[[LSMiniDB defaultInstance] deleteObjectsFromTable:@"user" predicate:[NSPredicate predicateWithFormat:@"uuid == %@", user[@"uuid"]] completion:^{
NSLog(@"deleted user");
}];
更多示例在示例项目中。
LSMiniDB 采用 MIT 许可协议。