Android NoSQL之SnappyDB

常规到的Android开发需要SQLite或者ORMLite这样的数据库存储数据,但是在有些情况下,基于键值对的数据存储效率更高,使用更便捷,在平台级的Java EE项目中,有一种去SQL的趋势和技术,Android平台上也有此类NoSQL技术解决方案,SnappyDB就是一款Android平台上的开源数据存储NoSQL解决方案。
SnappyDB在github上的项目地址:https://github.com/nhachicha/SnappyDB
一个简单的例子:
package app.zhangphil.app;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import com.snappydb.DB;import com.snappydb.DBFactory;import java.util.ArrayList;public class MainActivity extends AppCompatActivity {    private String TAG = "数据库调试";    private String DB_NAME = "zhangphil_db";    private String CLASS = "class";    private int studentCount = 20;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        writeDB();    }    @Override    protected void onResume() {        super.onResume();        readDB();    }    private static class Student {        public String name;        public int id;        public AClass aClass;    }    private static class AClass {        public String name;        public ArrayList students = new ArrayList<>();    }    private void writeDB() {        try {            DB snappydb = DBFactory.open(getApplicationContext(), DB_NAME);            AClass aClass = new AClass();            aClass.name = "一个班级";            for (int j = 0; j < studentCount; j++) {                Student student = new Student();                student.name = "学生" + j;                student.id = j;                student.aClass = aClass;                aClass.students.add(student);            }            snappydb.put(CLASS, aClass);            snappydb.close();        } catch (Exception e) {            e.printStackTrace();        }    }    private void readDB() {        try {            DB snappydb = DBFactory.open(getApplicationContext(), DB_NAME);            AClass aClass = snappydb.getObject(CLASS, AClass.class);            Log.d(TAG, aClass.students.size() + "");            snappydb.close();        } catch (Exception e) {            e.printStackTrace();        }    }}


注意存储的数据结构对象要static。
不要忘记加Android的存取权限。


代码运行的结果输出正确的值20.

更多相关文章

  1. ReactNative入门-Android原生项目转RN项目
  2. 【Android Studio】eclipse项目导入Android Studio
  3. Android伸手党系列之四:Android项目开发常用技术
  4. 【android】 sqliter数据库CRUD
  5. android 项目收获02
  6. 【Android】编译CM10遇到的错误解决方案
  7. android滑动删除的一个开源项目SwipeDelMenuLayout的简单使用
  8. android创建数据库和表

随机推荐

  1. 关于Android LOG系统
  2. [Android]在Manifest中注册广播监听器
  3. Android(安卓)添加程序到桌面favorites列
  4. 29.Android 传感器
  5. android线程间通信和主线程更新ui
  6. Android之WebViewClient与WebChromeClien
  7. android Button源码分析
  8. 【记录】 Android 双卡手机获取两个IMEI
  9. MenuItemCompat.getActionProvider 返回
  10. 解决:Error: Could not find gradle wrapp