Realm Java 简明教程(1)
Realm Java 简明教程
Realm 是一个轻量的android版本的数据存储库
Realm 是一个轻量的android版本的数据存储库,快速简洁的操作方式,使得其优势得以凸显,我们来看下一个实例:
// 定义需要存储的类,继承自 RealmObject
public class Dog extends RealmObject {@Required // Name cannot be nullprivate String name;private int age;// ... Generated getters and setters ...
}
public class Person extends RealmObject {@Required // Name is not nullableprivate String name;private String imageUrl; // imageUrl is an optional fieldprivate RealmList<Dog> dogs; // A person has many dogs (a relationship)// ... Generated getters and setters ...
}// 像一般的操作方式使用它
Dog dog = new Dog();
dog.setName("Rex");
dog.setAge("1");
Log.v(TAG, "Name of the dog: " + dog.getName());// 获取一个Realm实例
Realm realm = Realm.getInstance(context);// 查找Dog数据库中字段age小于2的所有数据
RealmResults<Dog> puppies = realm.where(Dog.class).lessThan("age", 2).findAll();
puppies.size(); // => 此时还没有插入存储,因此为0// 保存这个数据
realm.beginTransaction();
realm.copyToRealm(dog);
realm.commitTransaction();// 查询是自动同步更新的
puppies.size(); // => 1//异步查询和更新数据
realm.executeTransaction(new Realm.Transaction() {@Overridepublic void execute(Realm realm) {// 开始查询和修改数据Dog theDog = realm.where(Dog.class).equals("age", 1).findFirst();theDog.setAge(3);}
}, new Realm.Transaction.Callback() {@Overridepublic void onSuccess() {// 原始的查询数据会自动更新puppies.size(); // => 0 because there are no more puppies (less than 2 years old)dog.getAge(); // => 3 数据已经修改}
});
我们来看下如上的流程,发现处理过程比起我们之前使用的数据库方案简单了许多。像litepal的操作已经很简单,但是相对来说还是需要配置一些xml和app参数才可以使用。相对来说,Realm则非常轻量,简单易用,有同步和异步处理方案,代码相对也非常优雅。
开始
下载库或者去官网下载代码
Realm jar
Realm src前期要求
- 我们仅支持android
- Android Studio >= 0.8.6 — 使用Eclipse,往下看.
- 最新的Android SDK版本.
- JDK 版本 >=7.
- 我们支持android2.3以上版本
- 使用
- 你可以选择手动添加或者使用maven工具实现。
Maven
1.请确保您的项目使用jcenter作为一个依赖库 (默认的是最新的android gradle plugin)
2.在你的工程依赖库增加compile ‘io.realm:realm-android:0.87.4’
3.使用工具->Android->同步即可
Jar
1.下载jar包解压
2.新建一个工程
3.复制jar文件夹到app/libs里面
4.在工程的依赖里面加入包含此库。
- 你可以选择手动添加或者使用maven工具实现。
- 混淆要求
Realm 在编译时生成每个RealmObject 的代理类。为了确保这些类可以在混淆和静态分析工具能运行的,你的混淆语法需要如下去编写:
-keep class io.realm.annotations.RealmModule
-keep @io.realm.annotations.RealmModule class *
-keep class io.realm.internal.Keep
-keep @io.realm.internal.Keep class * { *; }
-dontwarn javax.**
-dontwarn io.realm.**
Api查询
你可以在官方地址查看到所有的api使用接口。
具体Models的使用规则,下一章节再来分析。
Realm Java 简明教程(1)相关推荐
- Java简明教程-基本语法上
基本语法上 认识java 变量 常量 数据类型 String 计算字符串长度 字符串比较 字符串连接 字符串常用提取方法 StringBuilder 运算符 算术运算符 位运算符 逻辑运算符 关系运算 ...
- java程序设计简明教程张晓龙_Java网络编程简明教程
Java网络编程简明教程 网络编程 计算机网络相关概念 计算机网络是两台或更多的计算机组成的网络,同一网络内的任意两台计算机可以直接通信,所有计算机必须遵循同一种网络协议. 互联网 互联网是连接计算机 ...
- Java手机游戏开发简明教程 (SunJava开发者认证程序员 郎锐)
原文发布时间为:2008-07-30 -- 来源于本人的百度文章 [由搬家工具导入] Java手机游戏开发实例简明教程 (SunJava开发者认证程序员 郎锐) 一.手机游戏编写基础 1.手机游戏设计 ...
- java 大学简明教程_Simply-Java 《JAVA大学简明教程:实例程序设计》例子及习题源代码 - 下载 - 搜珍网...
JAVA大学简明教程:实例程序设计/附书源代码/Tutorial01/MovingShapes/BoundedShape.class JAVA大学简明教程:实例程序设计/附书源代码/Tutorial0 ...
- 一周极客热文:Java 8简明教程
该教程将带领你一步一步地认识这门语言Java 8的新特性.通过简单明了的代码示例,你将会学习到如何使用默认接口方法,Lambda表达式,方法引用和重复注解.看完这篇教程后,你还将对最新推出的API有一 ...
- java程序设计简明教程答案张晓龙_java2简明教程部分课后复习题答案
JAVA2 简明教程习题答案 第二章 课堂习题 : public class Main { public static void main(String[] args) { //initializat ...
- 视频教程-MyBatis简明教程-Java
MyBatis简明教程 就职于国内知名在线互联网旅游公司,10+互联网开发经验,精通前后端开发 刘志强 ¥29.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 APP订 ...
- Java Web 简明教程
点此查看 所有教程.项目.源码导航 1. 前言 本教程用于介绍Java Web开发入门的方方面面,包括开发环境.工具.网页.Java.数据库等. 本教程写于2016年底,一些内容相对比较陈旧了,新版的 ...
- CGIC简明教程(转摘)
CGIC简明教程 本系列的目的是演示如何使用C语言的CGI库"CGIC"完成Web开发的各种要求. ********************************* 基础 ...
最新文章
- Android StateListDrawable的坑
- 实现MVC模式的Web应用程序
- 2015年度最全微课堂笔记精华包
- Python列表的切片
- 「Luogu1552」[APIO2012]派遣
- Netflix测试有线电视频道、字节11亿入股掌阅、快手香港IPO、王者荣耀日活破一亿等|Decode the Week...
- 数字电子技术基础第三版杨志忠_阎石数字电子技术基础第6版笔记和课后习题详解...
- 同志亦凡人第五季/全集BQueer As Folk 5迅雷下载
- java jsonp 接口_jsonp使用,spring4.x对jsonp的支持
- 【树链剖分】染色(luogu 2486/金牌导航 树链剖分-3)
- 直击标贝科技WAIC2019:深耕语音合成与数据服务 助力语音场景完美落地
- 共青城市大力推进国家智慧城市试点建设
- 视频时帧率达到15,人眼就感觉是连续的
- w10怎么改mysql用户名_win10用户名彻底改为英文的详细操作步骤
- linux开机密码取消,如何取消电脑开机密码
- RTE 2020 实时互联网大会参会指南——明天我们线上见!
- Java中的IO整理
- 为什么 Go 语言能在中国这么火?
- 5G技术—5G网络架构及关键技术详述测试题目
- 对计算机专业的兴趣怎么说,计算机专业特长及爱好怎么写