realm教程 android,Realm for Android基本教程

本文介绍了一款开源数据库工具Realm的基本用法,包括如何在Android项目中集成Realm、创建及操作Realm对象、定义RealmObject以及执行数据查询等。Realm以其快速、易用和支持多平台的特点,成为替代SQLite数据库的一个好选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

Realm是一款开源的数据库工具,它具有快速,易于使用和支持多平台的特点.它完全可以取代我们Android中的SQLite数据库,它比SQLite使用起来更加的方便快捷.

添加到项目

想在Android的项目当中使用Realm,只需在依赖文件app/build.gradle下的dependencies节点添加依赖即可1compile 'io.realm:realm-android:0.84.1'

创建Realm对象

一个Realm对象就相当于一个SQLite数据库,一旦创建了一个Realm对象在Android的文件系统中就会存在一个与之对应的文件.1Realm myRealm = Realm.getInstance(context);

通过Realm.getInstance()方法可以得到一个Realm对象,同时也会在Android文件系统中创建一个名为default.realm的Realm文件.

我们还可以通过RealmConfiguration.Builder对象来创建自己命名的Realm对象1

2

3Realm myOtherRealm = Realm.getInstance(new RealmConfiguration.Builder(context)

.name("myOtherRealm.realm")

.build());

创建RealmObject

任何的JavaBean对象只要继承了RealmObject类,都可以被Realm存取访问.1

2

3

4

5

6public class extends RealmObject{

private String name;

private int age;

}

我们还可以为对象属性指定primary key1

2

3

4

5

6

7public class Person extends RealmObject{

private long id;

private String name;

// ... Generated getters and setters ...

}

对RealmObject进行操作

要将数据存储到Realm上就需要进行事务操作,下面是一个简单的例子1

2

3

4

5

6

7

8

9

10myRealm.beginTransaction();

// Create an object

Dog dog1 = myRealm.createObject(Dog.class);

// Set its fields

dog1.setName("Jack");

dog1.setAge(3);

myRealm.commitTransaction();

从上面的代码可以看到,我们是通过Realm的createObject()方法创建的对象,并不是通过它的构造函数创建的.这是为了让Realm可以管理RealmObject的实例.

如果你想通过构造函数创建对象,最后别忘了使用Realm的copyToRealm()方法将对象与RealmObject关联1

2

3

4

5

6

7Dog dog2 = new Dog();

dog2.setName("Mike");

dog2.setAge(6);

myRealm.beginTransaction();

Dog copyOfDog = myRealm.copyToRealm(dog2);

myRealm.commitTransaction();

Realm的查询操作就简单多了,通过使用where()方法关联相应的RealmObject对象,通过findAll()方法便可获取所有的对象,得到的是一个RealmResults的列表对象1

2

3

4

5

6

7

8RealmResults results1 =

myRealm.where(Dog.class).findAll();

for(Dog d:results1) {

Log.d("results1", d.getName());

}

// Prints Jack, Mike

Realm还提供了很多的查询方法,beginsWith(),endsWith(),lesserThan(),greaterThan()等,这些方法可用于过滤查询得到的结果,若想得到age大于3的Dog对象,我们可以这样操作1

2

3

4

5RealmResults results2 =

myRealm.where(Dog.class)

.greaterThan("age", 3)

.findAll();

// 得到 Mike

此外还可对得到的结果按属性字段进行排序1

2

3RealmResults results3 =

myRealm.where(Dog.class)

.findAllSorted("name", false);

传入的boolean值参数代表是正序还是逆序

总结

通过上面的教程已经可以看出Realm的使用非常的简单,如果你想让你的应用拥有数据存取的功能,那Realm是一个不错的选择,想要查看跟多关于Realm的内容,可以查看其官方手册.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值