LMKeyValueStore 2.0.0

LMKeyValueStore 2.0.0

hcxyzlm 维护。



  • 作者
  • zhuo

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];