一.介绍

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的入门使用相关推荐

  1. android realm 简书,Realm使用(入门篇)

    Realm 介绍 什么是ORM? Android原生操作数据库的方式是这样的:首先定义一个类继承SQLiteOpenHelper,重写onCreate和onUpdate,后续对数据库的增删改查以及创建 ...

  2. 【Java从0到架构师】项目实战 - 会话管理、EhCache、JWT、权限管理 Shiro、打包部署

    项目实战 - 权限管理 会话管理 客户端身份认证 - 基于 Cookie.Session 客户端身份验证 - 基于 token EhCache - 简单的缓存框架 JWT - 基于 JSON 的 to ...

  3. Android数据库新王者-Realm入门教程

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010046908/article/details/51629262 好长时间没有写关于Androi ...

  4. Shiro框架:授权流程、授权方式、Shiro授权入门程序、自定义Realm进行授权

    一.Shiro授权: 1.授权与权限: (1)授权:访问控制,必须具有该资源的访问权限才可以访问该资源. (2)权限模型:标准权限数据模型包括 :用户.角色.权限(包括资源和权限).用户角色关系.角色 ...

  5. Shiro框架:Shiro简介、登陆认证入门程序、认证执行流程、使用自定义Realm进行登陆认证、Shiro的MD5散列算法

    一.Shiro介绍: 1.什么是shiro: (1)shiro是apache的一个开源框架,是一个权限管理的框架,实现用户认证.用户授权. (2)spring中有spring security,是一个 ...

  6. realm android,Realm for Android快速入门教程

    介绍 如果你关注安卓开发的最新趋势,你可能已经听说过 Realm .Realm是一个可以替代SQLite以及ORMlibraries的轻量级数据库. 相比SQLite,Realm更快并且具有很多现代数 ...

  7. Realm for Android 使用入门

    Realm 是一个手机数据库,是用来替代 SQlite 的解决方案,比 SQlite 更轻量级,速度更快,因为它有一套自己的数据库搜索引擎,并且还具有很多现代数据库的优点,支持 JSON,流式 API ...

  8. [译] Realm 的使用入门

    原文链接:https://docs.mongodb.com/realm/sdk/android/quick-start-local/ 一.初始化Realm 必须先初始化 Realm 库,然后才能在应用 ...

  9. Android 数据库Realm入门

    之前使用本地数据库都是用sqllite的,偶尔用一下LitePal,听人说Realm多么多么好使,但是我一直都没有去学习,今天有空去瞅了瞅,果然很不错. 它有以下几种特点: 1.易用:Ream 不是在 ...

最新文章

  1. linux 配置软连接的需要注意的一个问题
  2. SAP咨询顾问被客户投诉的几个原因
  3. requests库和BeautifulSoup4库爬取新闻列表
  4. C#取整函数Math.Round、Math.Ceiling和Math.Floor
  5. PHP解决网站大流量与高并发
  6. 成功解决VMware虚拟机中的please remove the installation medium then press enter
  7. 用自己的ID在appstore中更新app-黑苹果之路
  8. Linux iptables防火墙详解(四)——配置实战
  9. ACM HDU 2516 取石子游戏(博弈)
  10. Matlab实现圆孔夫琅和费衍射
  11. Choerodon猪齿鱼1.0先行版已发布!
  12. 关于switchcase和ifelse的效率对比分析
  13. Unity学习笔记(4)-----粒子效果的实现
  14. 让Android自带的Gallery实现多点缩放,拖动和边界回弹效果,效果流畅
  15. poker -3 +白鹭引擎
  16. 【经典算法】冒泡排序
  17. 酷睿i9-13900K性能出炉Steam游戏开发首选驰网独家i9-13900K服务器水冷定制高主频游戏服务器
  18. Win2008 - R2 下安装 MsSqlServer2008
  19. 二阶常系数非齐次线性微分方程的特征方程的选取技巧
  20. PS图层添加模式解说

热门文章

  1. 我眼中的性能测试工程师
  2. SharePoint 上传附件
  3. 一个导出类的内部函数的dll
  4. ElasticSearch启动报错at least one of [discovery.seed_hosts, discovery.seed_provid---ElasticSearch工作笔记032
  5. ES6新特性_ES6_Symbol的介绍与创建---JavaScript_ECMAScript_ES6-ES11新特性工作笔记015
  6. 大数据_Hbase-API访问_Java操作Hbase_MR-数据迁移-开发代码---Hbase工作笔记0016
  7. Netty工作笔记0082---TCP粘包拆包实例演示
  8. 表单中enctype=multipart/form-data的意思
  9. 图像处理中各种边缘检测的微分算子简单比较(Sobel,Robert, Prewitt,Laplacian,Canny) 【转】
  10. 使用jsoncpp解析json文件