Realm的入门使用
一.介绍
Realm是一个不错的手机平台上的数据库,支持多种编程环境,如:Java、Object-C、React Native、Swift、Xamari等。
Realm的官网:https://realm.io/
github地址:https://github.com/realm
realm-java库的文档:https://realm.io/docs/java/la...
二.使用
1)配置:
//1.工程gradle
buildscript {repositories {jcenter()}dependencies {//1. 添加realm插件classpath "io.realm:realm-gradle-plugin:1.2.0"}
}//2. app的gradle
apply plugin: 'realm-android'dependencies {compile 'io.realm:realm-android-library:1.2.0'
}
2)数据块操作实体类
package com.peter.schoolmarket.data.pojo;import java.io.Serializable;import io.realm.RealmObject;
import io.realm.annotations.PrimaryKey;
import io.realm.annotations.Required;/*** Created by PetterChen on 2017/4/10.*/public class User extends RealmObject implements Serializable {@PrimaryKey //主键idprivate int id;//private String username;//用户名private String password;//用户密码private String phone;//手机号private String imgUrl;//头像地址public User() {//}public void setId(int id) {this.id = id;}public void setUsername(String username) {this.username = username;}public void setPassword(String password) {this.password = password;}public void setPhone(String phone) {this.phone = phone;}public void setImgUrl(String imgUrl) {this.imgUrl = imgUrl;}public int getId() {return id;}public String getUsername() {return username;}public String getPassword() {return password;}public String getPhone() {return phone;}public String getImgUrl() {return imgUrl;}
}
3)初始化
//Realm初始化,这是默认初始化,可以自定义初始化
Realm.init(this);//this表示上下文
RealmConfiguration config = new RealmConfiguration.Builder().build();//可以修改
Realm.setDefaultConfiguration(config);
4)数据库操作
可以使用事务或者事务块,对于事务块,有同步的和异步的,如果使用异步事务块,需要手动关闭
//增,事务增
Realm realm=Realm.getDefaultInstance();
realm.beginTransaction();
realm.copyToRealm(user);
realm.commitTransaction();//增,事务块增
Realm mRealm=Realm.getDefaultInstance();
mRealm.executeTransaction(new Realm.Transaction() {@Overridepublic void execute(Realm realm) {realm.copyToRealm(user);}
});//删,事务块删
Realm mRealm=Realm.getDefaultInstance();
final RealmResults<Dog> dogs= mRealm.where(Dog.class).findAll();
mRealm.executeTransaction(new Realm.Transaction() {@Overridepublic void execute(Realm realm) {Dog dog=dogs.get(5);dog.deleteFromRealm();//删除第一个数据dogs.deleteFirstFromRealm();//删除最后一个数据dogs.deleteLastFromRealm();//删除位置为1的数据dogs.deleteFromRealm(1);//删除所有数据dogs.deleteAllFromRealm();}
});
//同理,也可以使用事务删//查,查询全部
Realm mRealm=Realm.getDefaultInstance();
RealmResults<Dog> dogs = mRealm.where(Dog.class).findAll();
List<Dog> list = mRealm.copyFromRealm(dogs);//查,条件查询
Realm mRealm=Realm.getDefaultInstance();
Dog dog = mRealm.where(Dog.class).equalTo("id", id).findFirst();//改
Realm mRealm=Realm.getDefaultInstance();
Dog dog = mRealm.where(Dog.class).equalTo("id", id).findFirst();
mRealm.beginTransaction();
dog.setName(newName);
mRealm.commitTransaction();
三.最后
这篇博文算不上是原创,都是参考其它博文写的,只是为了以后自己有用到Realm时,可以不用再去查资料。
参考博文:
http://blog.csdn.net/fwt336/a...
http://www.cnblogs.com/liushi...
http://www.jianshu.com/p/fdc9...
Realm的入门使用相关推荐
- android realm 简书,Realm使用(入门篇)
Realm 介绍 什么是ORM? Android原生操作数据库的方式是这样的:首先定义一个类继承SQLiteOpenHelper,重写onCreate和onUpdate,后续对数据库的增删改查以及创建 ...
- 【Java从0到架构师】项目实战 - 会话管理、EhCache、JWT、权限管理 Shiro、打包部署
项目实战 - 权限管理 会话管理 客户端身份认证 - 基于 Cookie.Session 客户端身份验证 - 基于 token EhCache - 简单的缓存框架 JWT - 基于 JSON 的 to ...
- Android数据库新王者-Realm入门教程
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010046908/article/details/51629262 好长时间没有写关于Androi ...
- Shiro框架:授权流程、授权方式、Shiro授权入门程序、自定义Realm进行授权
一.Shiro授权: 1.授权与权限: (1)授权:访问控制,必须具有该资源的访问权限才可以访问该资源. (2)权限模型:标准权限数据模型包括 :用户.角色.权限(包括资源和权限).用户角色关系.角色 ...
- Shiro框架:Shiro简介、登陆认证入门程序、认证执行流程、使用自定义Realm进行登陆认证、Shiro的MD5散列算法
一.Shiro介绍: 1.什么是shiro: (1)shiro是apache的一个开源框架,是一个权限管理的框架,实现用户认证.用户授权. (2)spring中有spring security,是一个 ...
- realm android,Realm for Android快速入门教程
介绍 如果你关注安卓开发的最新趋势,你可能已经听说过 Realm .Realm是一个可以替代SQLite以及ORMlibraries的轻量级数据库. 相比SQLite,Realm更快并且具有很多现代数 ...
- Realm for Android 使用入门
Realm 是一个手机数据库,是用来替代 SQlite 的解决方案,比 SQlite 更轻量级,速度更快,因为它有一套自己的数据库搜索引擎,并且还具有很多现代数据库的优点,支持 JSON,流式 API ...
- [译] Realm 的使用入门
原文链接:https://docs.mongodb.com/realm/sdk/android/quick-start-local/ 一.初始化Realm 必须先初始化 Realm 库,然后才能在应用 ...
- Android 数据库Realm入门
之前使用本地数据库都是用sqllite的,偶尔用一下LitePal,听人说Realm多么多么好使,但是我一直都没有去学习,今天有空去瞅了瞅,果然很不错. 它有以下几种特点: 1.易用:Ream 不是在 ...
最新文章
- linux 配置软连接的需要注意的一个问题
- SAP咨询顾问被客户投诉的几个原因
- requests库和BeautifulSoup4库爬取新闻列表
- C#取整函数Math.Round、Math.Ceiling和Math.Floor
- PHP解决网站大流量与高并发
- 成功解决VMware虚拟机中的please remove the installation medium then press enter
- 用自己的ID在appstore中更新app-黑苹果之路
- Linux iptables防火墙详解(四)——配置实战
- ACM HDU 2516 取石子游戏(博弈)
- Matlab实现圆孔夫琅和费衍射
- Choerodon猪齿鱼1.0先行版已发布!
- 关于switchcase和ifelse的效率对比分析
- Unity学习笔记(4)-----粒子效果的实现
- 让Android自带的Gallery实现多点缩放,拖动和边界回弹效果,效果流畅
- poker -3 +白鹭引擎
- 【经典算法】冒泡排序
- 酷睿i9-13900K性能出炉Steam游戏开发首选驰网独家i9-13900K服务器水冷定制高主频游戏服务器
- Win2008 - R2 下安装 MsSqlServer2008
- 二阶常系数非齐次线性微分方程的特征方程的选取技巧
- PS图层添加模式解说
热门文章
- 我眼中的性能测试工程师
- SharePoint 上传附件
- 一个导出类的内部函数的dll
- ElasticSearch启动报错at least one of [discovery.seed_hosts, discovery.seed_provid---ElasticSearch工作笔记032
- ES6新特性_ES6_Symbol的介绍与创建---JavaScript_ECMAScript_ES6-ES11新特性工作笔记015
- 大数据_Hbase-API访问_Java操作Hbase_MR-数据迁移-开发代码---Hbase工作笔记0016
- Netty工作笔记0082---TCP粘包拆包实例演示
- 表单中enctype=multipart/form-data的意思
- 图像处理中各种边缘检测的微分算子简单比较(Sobel,Robert, Prewitt,Laplacian,Canny) 【转】
- 使用jsoncpp解析json文件