深度定制

2018-12-16 11:04 更新

遇到问题?欢迎访问GitHub页面提交Issue https://github.com/SumiMakito/QuickKV ,同时也欢迎收藏项目

同步

技巧:你可以用这个方法来实现多实例,但不推荐使用。频繁地同步将会影响性能。

这个方法将会使数据从已持久化版本同步至当前数据库。

0.8.1版本后引入异步支持

同步模式

合并模式默认开启

  • 合并模式(true):将已持久化的部分覆盖至当前数据库,其他数据保持原样。

  • 非合并模式(false):先清除数据库内容,再将已持久化的数据载入至当前数据库。小心数据丢失

参考代码

qkvdb1.put("key", "value");
qkvdb1.persist();
qkvdb2.get("key");
//Output: null (Key doesn't exist)
qkvdb2.get("qkv2");
//Output: "another_value" (qkvdb1 doesn't have this key-value)
qkvdb2.sync(true); //Merge mode is true
qkvdb2.get("key").toString();
//Output: "value"
qkvdb2.get("qkv2");
//Output: "another_value"
qkvdb2.sync(false); //Merge mode is false
qkvdb2.get("qkv2");
//Output: null (because qkvdb doesn't have this key-value)
//Async (0.8.1+)
qkvdb2.sync(new KeyValueDatabase.Callback(){
    @Override
    public void onSuccess(){
        //Do something...
    }
    @Override
    public void onFailed(){
        //Do something...
    }
});
//Specify a mode for sync with callback
qkvdb2.sync(true, new KeyValueDatabase.Callback(){
    @Override
    public void onSuccess(){
        //Do something...
    }
    @Override
    public void onFailed(){
        //Do something...
    }
});

加密/解密

成功调用此方法后,数据库会自动持久化一次以应用加密/解密。

不需要在持久化前人工解密,一切都将自动进行。

  • 加密
//You can find the first method in the "Get database" section.
//Here is the second method
qkvdb.enableEncryption("mykey123"); //"" or null as a key is not allowed!
  • 解密
qkvdb.disableEncryption();

清除数据

这个方法将清除指定数据库中所有的数据

qkvdb.clear();
技巧:清空一个已持久化的数据库文件
qkvdb.clear(); //Clear it
qkvdb.persist(); //Then persist it

多数据库管理

释放数据库

这个方法将从内存中释放非默认数据库。

所有未保存的数据都将丢失

qucikKv.releaseDatabase("a_database");
qucikKv.releaseAllDatabases(); //One-click-destroy :P

这个数据库被打开了吗?

这个方法将返回一个布尔值。

qucikKv.isDatabaseOpened("dbAlias");
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号