LMKeyValueStore demo 有问题或疑问,欢迎加 QQ:601113614
LMKeyValueStore 是基于 WCDB 数据库的一套缓存工具框。支持网络 JSON 缓存。
About WCDB: Tencent/WCDB , 微信 WCDB 进化之路 - 开源与开始
集成说明
您可以在 Podfile 中添加以下代码来使用 YTKKeyValueStore。
pod "LMKeyValueStore"
使用教程
缓存 JSON 封装类为 LMKeyValueStore
打开(或创建)数据库
LMKeyValueStore *store = [[LMKeyValueStore alloc] initDBWithName:@"test.db"];
创建表
[store createTableWithName:@"test_table"];
操作数据库
// insert
NSString *tableName = @"test_table";
NSString *key1 = @"key1";
NSString *string = @"abc1";
[store putCacheString:string withId:key1 intoTable:tableName];
// select
NSString *result = [store getCacheStringById:key1 fromTable:tableName];
// 修改,使缓存过期
[store makeCacheExpiredById:key1 fromTable:tableName];
// delete
[store deletCacheStringById:key1 fromTable:tableName];
// delete all objcet
[store deleteAllCacheByTableName:tableName];
封装wcdb操作类
为了隔离C++代码,不让引用wcdb引用的文件变成mm文件,特别封装了一个wcdb类,用于简单的数据库操作。所有的接口都封装在LMWCDBOperation中,更为复杂的数据库操作逻辑建议放在一个分类里面进行。
使用教程
LMWCDBOperation *storeHelper = [[LMWCDBOperation alloc] initDBWithName:@"test.db"];
NSString *tableName = @"test_table";
LMKeyValueItem *item = [[LMKeyValueItem alloc] init];
item.itemId = @"key1";
item.itemObject = @"abc";
item.createdTime = [NSDate date];
//create
if (![storeHelper isTableExists:tableName]) {
[storeHelper createTableAndIndexesOfName:tableName withClass:[LMKeyValueItem class]];
}
// insert
[storeHelper insertObject:item into:tableName];
// select
LLMKeyValueItem *result = [storeHelper getOneObjectOfClass:[LMKeyValueItem class] fromTable:tableName primaryKeyName:@"id" primaryKey:item.itemId];
// modification
item.itemObject = @"def";
[storeHelper updateObjectInTable:tableName withObject:item primaryKeyName:@"id" primaryKey:item.itemId];
// delete
[storeHelper deleteObjectFromTable:tableName primaryKeyName:@"id" primaryKey:item.itemId];