深度定制
遇到问题?欢迎访问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");