关闭

Android轻量易用的键值数据库 QuickKV

标签: 数据库android
98人阅读 评论(0) 收藏 举报

QuickKV是一个专为Android项目提供的轻量易用的键值数据库。

在Android开发中,复杂的Map和List在持久化和反序列化的时候比较麻烦和费时。事实上,我们只需要关注键与值就够了。于是,QuickKV因此而诞生了!

  • HashMap with JSON
//Put data in a hashmap and save it to the local storage.
//在HashMap中放入数据并存储至本地存储器。
Map<Object, Object> map = new HashMap<Object, Object>();
map.put("Key","Value");
JSONObject json = new JSONObject();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext())
{
    Map.Entry entry = (Map.Entry) iter.next();
    Object key = entry.getKey();
    Object value = entry.getValue();
    json.put(key.toString(), value.toString());
}
FileOutputStream fos = this.openFileOutput("data.json", Context.MODE_PRIVATE);
fos.write(json.toString().getBytes());
fos.close();
//Load saved data from local storage and parse it, then convert it to a HashMap is more complex.
//从存储器中载入已保存的数据并解析、转换为HashMap就更加复杂了。
  • QuickKV
//Do the same thing with QuickKV
//用QuickKV做同样的事情
QuickKV quickKv = new QuickKV(this);
KeyValueDatabase pkvdb1 = quickKv.getDatabase("Foo");
pkvdb1.put("Key", "Value");
pkvdb1.persist();
//Done! Saved to local storage!
//完成!已保存至本地存储器!
//Let try to load this saved database!
//让我们来试试载入这个保存好的数据库!
KeyValueDatabase pkvdb2 = quickKv.getDatabase("Foo");
pkvdb2.get("Key");
//Output: "Value"
//输出: "Value"
Do more tasks in fewer words. This QuickKV! 代码虽短,却能完成多个任务,这就是QuickKV!

as直接在build.gradle中添加一下依赖:

dependencies {
    compile 'com.github.SumiMakito:QuickKV:1.0.5'
}

新建实例

QuickKV quickKv = new QuickKV(this);

设定工作目录(可略过此步骤)
Default workspace / 默认工作目录: Context.getFilesDir();

quickKv.setWorkspace("/tmp");

取得数据库
Normal KVDB 普通键值数据库

kvdb = quickKv.getDatabase(); // --> database.qkv
kvdb = quickKv.getDatabase(true); // --> database.qkv (gzip)
kvdb = quickKv.getDatabase("CustomName"); // --> CustomName.qkv
kvdb = quickKv.getDatabase("CustomName.db"); // --> CustomName.db
kvdb = quickKv.getDatabase("CustomName", true); // --> CustomName.qkv (gzip)
kvdb = quickKv.getDatabase("", "Password"); // --> database.qkv (encrypted)
kvdb = quickKv.getDatabase("CustomName", "Password"); // --> CustomName.qkv (encrypted)
kvdb = quickKv.getDatabase("CustomName", "Password", true); // --> CustomName.qkv (encrypted+gzip)

High Capacity KVDB 大容量键值数据库(1.0.0+)

quickKv.setWorkspace("/tmp"); // IMPORTANT: Must set workspace first!!
hckvdb = quickKv.getHCKVDB("CustomName"); // --> /tmp/CustomName
hckvdb = quickKv.getHCKVDB("CustomName.db"); // --> /tmp/CustomName.db

操作普通数据库
Add a key-value data 添加一条KV数据

qkvdb.put(k,v); //Put everything as you like

将HashMap中的多条数据加入

qkvdb.put(hashMap); //Auto filled

通过键取得值
这个方法将返回一个对象,你可以在之后使用形态转换将该对象转为原始类型。

qkvdb.get("something_key");
qkvdb.getString("a_string");
qkvdb.getInt("an_int");
//... and more specific getters were added after v1.0.2

移除数据

qkvdb.remove("key");

清除数据

qkvdb.clear();

更多的一些功能可以去github上克隆源代码查看,也可以去项目主页上有详细介绍。

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2263次
    • 积分:161
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档