深度定制
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");
以上内容是否对您有帮助:
← 持久化数据
更多建议: