文章目录
  1. 1. SnappyDB
    1. 1.1. 创建数据库
    2. 1.2. 关闭数据库
    3. 1.3. 销毁数据库
    4. 1.4. 插入基本数据
    5. 1.5. 读取基本数据
    6. 1.6. 插入序列化对象
    7. 1.7. 读取序列化对象
    8. 1.8. 插入对象
    9. 1.9. 读取对象
    10. 1.10. 插入数组
    11. 1.11. 读取数组

NoSQL泛指非关系数据库,随着web2.0网站的兴起迅速发展。

相对于SQLite数据库,NoSQL无意更加快速、更加轻量级、存取数据方便,不需要设计多张表。

SnappyDB

SnappyDB是众多NoSQL数据库的一员,Android上非常流行的NoSQL数据库,可以保存任何基本数据类型和序列化(Serializable)的数据及其数组
SnappyDB在保存和读取序列对象的时候,使用的是Kryo库,也Java内置序列化更快。更大的优势是,你并不要为数据去显式的去实现Serializable接口。这就意味着你以前的代码完全不要做任何改动。

创建数据库

DB snappydb = DBFactory.open(context);    // 默认名的数据库
DB snappydb = DBFactory.open(context,"books");    // 指定名字的数据库

SnappyDB使用内部存储空间,路径为:/data/data/com.snappydb/files/mydatabase
也可以使用参数指定存储位置

1
2
3
4
DB snappyDB = new SnappyDB.Builder(context)
.directory(Environment.getExternalStrongeDirectory().getAbsolutePath())
.name("books")
.build();

关闭数据库

snappydb.close();

销毁数据库

snappydb.destroy();

插入基本数据

  • short snappyDB.putShort("myshort",(short)32768);
  • int snappyDB.putInt("myint",Integer.MAX_VALUE);
  • long snappyDB.putLong("mylong",Long.MAX_VALUE);
  • double snappyDB.putDouble("my_double",Double.MAX_VALUE);
  • float snappyDB.putFloat("my_float",10.30f);
  • boolean snappyDB.putBoolean("my_bollean",true);
  • String snappyDB.put("my_string","string");

读取基本数据

  • short short myshort = snappyDB.getShort("myshort");
  • int int myInt = snappyDB.getInt("myint");
  • long long myLong = snappyDB.getLong("mylong");
  • double double myDouble = snappyDB.getDouble("my_double");
  • float float myFloat = snappyDB.getFloat("my_float");
  • boolean boolean myBool = snappyDB.getBoolean("my_bollean");
  • String String myString = snappyDB.get("my_string");

插入序列化对象

AtomicInteger objAtomicInt = new AtomicInteger (42);
snappyDB.put("atomic integer", objAtomicInt);

读取序列化对象

AtomicInteger myObject = snappyDB.get("atomic integer", AtomicInteger.class);

插入对象

MyPojo pojo = new MyPojo ();
snappyDB.put("my_pojo", pojo);

读取对象

MyPojo myObject = snappyDB.getObject("non_serializable", MyPojo.class);

插入数组

Number[] array = {new AtomicInteger (42), new BigDecimal("10E8"), Double.valueOf(Math.PI)};
snappyDB.put("array", array);

读取数组

Number [] numbers = snappyDB.getObjectArray("array", Number.class);

。。。待续

文章目录
  1. 1. SnappyDB
    1. 1.1. 创建数据库
    2. 1.2. 关闭数据库
    3. 1.3. 销毁数据库
    4. 1.4. 插入基本数据
    5. 1.5. 读取基本数据
    6. 1.6. 插入序列化对象
    7. 1.7. 读取序列化对象
    8. 1.8. 插入对象
    9. 1.9. 读取对象
    10. 1.10. 插入数组
    11. 1.11. 读取数组