Android(安卓)NoSQL之SnappyDB
16lz
2021-12-25
Android NoSQL之SnappyDB
常规到的Android开发需要SQLite或者ORMLite这样的数据库存储数据,但是在有些情况下,基于键值对的数据存储效率更高,使用更便捷,在平台级的Java EE项目中,有一种去SQL的趋势和技术,Android平台上也有此类NoSQL技术解决方案,SnappyDB就是一款Android平台上的开源数据存储NoSQL解决方案。
SnappyDB在github上的项目地址:https://github.com/nhachicha/SnappyDB
一个简单的例子:
注意存储的数据结构对象要static。
不要忘记加Android的存取权限。
常规到的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.
更多相关文章
- Mars Android视频学习笔记——01_16_SQLite使用方法
- ReactNative入门-Android原生项目转RN项目
- Android教程之MediaStore(轉)
- Android程序开发0基础教程(一)
- Android合并两个APP的具体做法(掌握)
- Android上开源的酷炫的交互动画和视觉效果:Interactive-animation
- Android伸手党系列之四:Android项目开发常用技术
- 【Android(安卓)Studio】eclipse项目导入Android(安卓)Studio
- Android(安卓)App Ant打包