Android肝帝战纪之ObjectBox移动数据库框架探究与实现
ObjectBox移动数据库框架
ObjectBox Github链接:
点击此处链接到Github
介绍
ObjectBox是移动端数据库框架,灵感来自于NoSql,速度非常快,号称是市面上最快的移动端数据库框架。为什么要使用
- 快
简单,面向对象的API
添加依赖
项目级别的Gradle中添加:
buildscript {ext.objectboxVersion = '1.4.4'dependencies {classpath "io.objectbox:objectbox-gradle-plugin:$objectboxVersion"}
}
module级别的Gradle的头部添加:
apply plugin: 'io.objectbox' // after applying Android plugin
之后Make Project一下项目
- 新建一个数据库对象,用注解@Entity标注
- @Id是主键的标识,自增
@Entity
public class UserProfile{@Idprivate long id;private String name;private int age;public UserProfile(String name, int age){this.name = name;this.age = age;}
}
之后重新编译一下程序,生成MyObjectBox的对象
之后在全局的Application中获取这个对象
public class MyApplication extends Application {private BoxStore boxStore;@Overridepublic void onCreate() {super.onCreate();boxStore = MyObjectBox.builder().androidContext(this).build();if (BuildConfig.DEBUG) {new AndroidObjectBrowser(boxStore).start(this);}}public BoxStore getBoxStore() {return boxStore;}
}
之后在相应的Activity或者其他地方调用,每个数据库对象都有自己相应的box
Box<UserProfile> userProfileBox = ((MyApplication)getApplication()).getBoxStore().boxFor(UserProfile.class);
获取到userProfileBox之后,就可以进行相应的增删改查了。
增
UserProfile user1 = new UserProfile(“wangming”, 18);
userProfileBox.put(user1);删
// 删除id是2的数据
userProfileBox.remove(2);
// 删除所有
userProfileBox.removeAll();
- 改
// 调用put方法完成更新
UserProfile user1 = userProfileBox.query().equal(UserProfile_name,"min").build().findFirst();
user1.setName("wangming");
userProfileBox.put(user1);
- 查
// 单条件查询:从所有用户中查出name="min"的数据
List<UserProfile> users = userProfileBox.query().equal(UserProfile_.name,"min").build().find();// 多条件查询:从所有用户中name = "min",age>18,并且secondName是以W开头的
userProfileBox.query().equal(UserProfile_.name,"min").greater(UserProfile_.age,18).startWith(UserProfile_.secondName,"W");.build().find();//要返回匹配查询的所有实体,只需调用 find()。
//要仅返回第一个结果,请使用 findFirst()。List item =roleBox.query().startsWith(Role_.role_name,"采").or().equal(Role_.role_name,"运营").orderDesc(Role_.created_at).build().find();QueryBuilder 还提供了greater、less、contain等API
Android肝帝战纪之ObjectBox移动数据库框架探究与实现相关推荐
- Android肝帝战纪之字体图标库(iconify)的简单使用
字体图标库(iconify)的简单使用 本文介绍字体图标库简单的封装和使用(以集成Fontawesome为例): Iconify的GIithub链接 点此链接到Github 导入依赖 //在app级别 ...
- Android肝帝战纪之基于上篇单Activity+多Fragment框架,开发电商式导航栏,多Fragment切换
电商式导航栏,多Fragment切换 本文默认在已经搭建好的框架上进行开发 点此链接到上一篇基础框架的搭建 界面构思示意图 设计思路 在底部的LinearLayout中添加相应的图标,然后设置tag绑 ...
- Android肝帝战纪之网络请求框架封装(Retrofit的封装)
网络请求框架封装(OkHttp3+Retrofit+loading的封装) Retrofit的Github链接 点此链接到Github AVLoadingIndicatorView的Github链接( ...
- Android肝帝战纪之Fragmentation的使用(单Activity+多Fragment设计)
#单Activity+多Fragment设计(Fragmentation的使用)# 本文介绍使用Fragmentation库打造单Activity+多Fragment的App基础架构: Fragmen ...
- Android整合网上资源以及个人对GreenDao数据库框架的理解与使用(android-studio开发)
优点:完美试用android,个人比较看好的一点是极其方便的contentprovider,不用自己操很多代码,两三句就能搞定.根据对象进行增删改查,迷糊数据库语句的可以一试. AS开发导入Green ...
- 赛尔号周五服务器维护大概到几点,赛尔号:每日玩多少小时算肝帝?2小时是菜鸟,大神:我24小时...
赛尔号:每日玩多少小时算肝帝?2小时是菜鸟,大神:我24小时 大家好,说起赛尔号这款游戏,很多人都知道这是一个很耗费大家时间的游戏.因为它以肝闻名,以氪为辅,令得很多玩家爱不释手,也令得很多玩家纷纷退 ...
- 诸神战纪2java_诸神战纪2死神归来
诸神战纪2死神归来是一款休闲益智类的游戏,像素的画风,玩家可以在游戏里面可以不断的完成很多的冒险任务不断的收集自己的武器和装备让自己变得强大.画风非常的具有特色,玩法非常简单,经典的剧情,丰富多样的玩 ...
- 东京战纪服务器维护中,东京战纪7月21维护公告 当前测试进度介绍
东京战纪当前的测试进度已经有了很大的进步,接下来小编就跟大家一起看看测试期间对玩家给大家的报告吧. 亲爱的喰种和CCG搜查官们 7月19日中午12:00,我们怀着紧张又忐忑的心情开启了<东京战纪 ...
- 推荐几个 Go 圈子的高质量肝帝
推荐几位号主,是 Go 领域的优秀号主,坚持原创,质量保证,相信大家关注学习一定会有所收获,快来关注一波吧. 划重点,原创,质量,肝帝(不包含煎鱼好吧). Go招聘 号主:小于,由移动开发转到后端开发 ...
最新文章
- 关于char(M)和varchar(N)的区别
- java取geosever数据_Geoserver - 连接到SQL Server 2008 Express并获取数据
- Softmax算法:逻辑回归的扩展
- python案例源码_【python】python实例集一
- oracle修改某表中的顺序,oracle 数据库 , 表中字段顺序修改
- php之数据类型自动转换
- 也谈Oracle异常: ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小
- 算法: 删除链表中的数据Remove Linked List Elements
- 注册机是如何获取序列号的?
- python 开发微信小游戏_Python实现微信找茬小游戏自动进行
- 金山WPS计算机视觉算法工程师
- ecshop模板制作5-调整首页样式
- Excel怎么插入按钮
- mysql数据库的封装
- 用思维导图快速学语法
- Simulink:车辆换挡逻辑回顾_Demo
- 使用Typora添加 行内、行间 数学公式
- c语言精确线搜索抛物线法,一维迭代搜索(黄金分割法抛物线法).ppt
- 《天讨胡虏檄》神权主义与排满内核的冲突·《中国近百年政治史》
- 深度学习中的网络设计技术(一) ——理论概述