android -------- Hawk数据库

Hawk 是一个非常便捷的数据库  . 操作数据库只需一行代码 , 能存任何数据类型 .

github 地址: https://github.com/orhanobut/hawk

一、概念

SharedPreferences的使用大家应该非常熟悉啦。这是一种轻量级的存储简单配置信息的存储机制,以key-value的形式保存数据。

这里介绍一款基于SharedPreferences的的存储框架,是由Android开发大神Orhan Obut开源维护的,

它使用:

AES 加密

能选择使用SharedPreferences  或者  SQLite

Gson解析     (文章下方的Simple中有替换fastJson的版本)

提供:

安全数据持久化

能存储任何类型

二、用法

添加依赖

compile "com.orhanobut:hawk:2.0.1"

初始化

Hawk.init(context).build();

存储数据

       //基本数据类型
Hawk.put("position","zz"); //集合
List<String> list = new ArrayList<>();
list.add("zhangqie1");
list.add("zhangqie2");
Hawk.put("listzq",list); //类
User user= new User();
user.setId(1);
user.setName("zhangqie1");
Hawk.put("user",user); //集合+实体类
User user1= new User();
user1.setId(2);
user1.setName("zhangqie2");
List<User> listUser = new ArrayList<>();
listUser.add(user);
listUser.add(user1);
Hawk.put("listUser",listUser);

读取数据(去上面最后一个数据)

 List<User> listU1 = Hawk.get("listUser");

数据是否已经保存:

Hawk.contains(key);

删除数据:

Hawk.delete(key);

删除全部数据:

Hawk.deleteAll();

接下来从源码的角度来看看内部干了什么吧,看图

android --------  Hawk数据库

这张图也很清晰的帮我们做了简单分析。左边的PUT方法中,是把T value 存储到Disk当中。大致流程是,先将数据进行toString的转换,接下来是加密,然后进行序列化,最后是存储,用的就是SharePreference的存储。获取数据时就正好逆过来啦。

上一篇:整合spring roo,maven,mybatis,spring-flex,blazeds,mysql


下一篇:java 22 - 11 多线程之模拟电影院售票口售票