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. Mars Android视频学习笔记——01_16_SQLite使用方法
  2. ReactNative入门-Android原生项目转RN项目
  3. Android教程之MediaStore(轉)
  4. Android程序开发0基础教程(一)
  5. Android合并两个APP的具体做法(掌握)
  6. Android上开源的酷炫的交互动画和视觉效果:Interactive-animation
  7. Android伸手党系列之四:Android项目开发常用技术
  8. 【Android(安卓)Studio】eclipse项目导入Android(安卓)Studio
  9. Android(安卓)App Ant打包

随机推荐

  1. 如何用js实现鼠标向上滚动时浮动导航
  2. vue常用术语与指令
  3. node.js中的querystring模块,fs模块与vm
  4. javascript简单商品管理器实现,node包的
  5. 写个vscode插件, 帮助阅读i18n项目的代码
  6. vue常用术语、常用指令实例演示
  7. VUE的事件绑定修饰符练习及vue列表渲染及
  8. VUE 添加事件、渲染、组件
  9. 向巨人学习—您将从中受益的顶级工程博客
  10. Golang:三个常见的编程问题