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

原创 2016年08月30日 10:47:43

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上克隆源代码查看,也可以去项目主页上有详细介绍。

版权声明:本文为博主原创文章,未经博主允许不得转载。

安卓轻量型数据库Litepal简单使用

LitePal是一个Android开源原生库,它使开发者使用SQLite数据库变得非常容易。 你可以不用写一句SQL语句就可以完成大部分数据库操作,包括创建表,更新表,约束操作,聚合功能等等。Lite...
  • ZABone
  • ZABone
  • 2017年03月18日 22:17
  • 351

Android轻量型数据库SQLite详解

数据库是Android存储方案的核心,在Andorid中SQLite非常轻量,而且执行sql语句甚至比mysql还要快。 SQLiteDatabase 是 Android 中操作数据库的核心类之一,...
  • qq_16415157
  • qq_16415157
  • 2015年12月01日 23:22
  • 636

Android之轻量数据库SQLite

SQLite学习一个朋友问我SQLite运用的怎么样 我就给他说了一下步骤。 我就有回顾了一下 顺便再练习练习 但是实际写起来 还真有点手生啦!我就抓紧敲了起来 以下就是源码:MySqlitep...
  • qq_32895969
  • qq_32895969
  • 2017年02月24日 13:32
  • 217

简单、易用、轻量的富文本编辑器

官网地址:http://www.wangeditor.com/index.html 好用的话记得点赞哦
  • justinytsoft
  • justinytsoft
  • 2016年09月29日 11:03
  • 4217

键值数据库

前段时间玩了Google App Engine之后一直对开源的键-值数据库比较关注,因为其开发使用方便,也有了在研究在自己的服务器上部署的可能性,于是自己Google了一些,同时Flying殿也有推荐...
  • htj0414
  • htj0414
  • 2010年02月26日 09:49
  • 1504

键值数据库—Redis(一) 基础入门

redis 是一个基于内存的高性能key-value数据库
  • lengyuhong
  • lengyuhong
  • 2010年08月10日 14:50
  • 3916

分享一款超轻量级数据库访问帮助器 -DbUtility (alias: DataPithy)

自己以前用过一款很轻量的数据库工具,可是一直都不知道这玩意叫啥,今天让我找到了,记录下,防止以后找不到。 以下原文来自  Ivony DbUtility v3 历史 ...
  • yanbinzou
  • yanbinzou
  • 2016年10月24日 14:08
  • 997

Android配置蓝牙键值

Android配置蓝牙键值的步骤和一般的键值基本相同,但是有几点区别需要注意kl文件修改蓝牙键值的kl有特殊的形式key usage 0x0c008c HOME第一列表示这是一个键值,第二列可以先不管...
  • u013894427
  • u013894427
  • 2017年09月26日 11:44
  • 472

Android KEYCODE 键值对应大全

Android   KEYCODE 键值对应大全 KEYCODE列表 电话键 键名 描述 键值     KEYCODE_CALL 拨号键5     KEYCODE_ENDCALL 挂机键6  ...
  • data_backups
  • data_backups
  • 2015年08月07日 14:12
  • 1203

小型数据库的选择(轻量级数据库)

小型数据库的选择(轻量级数据库)    一直使用Sql Server开发,没有用过Access之外其它的DB。最近正想做个小型工具,这种小东西当然不可能用Sql Server数据库啦,可又不想用Acc...
  • runAndRun
  • runAndRun
  • 2011年01月21日 22:02
  • 3922
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android轻量易用的键值数据库 QuickKV
举报原因:
原因补充:

(最多只允许输入30个字)