前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Realm数据库学习之快速入门

Realm数据库学习之快速入门

作者头像
Frank909
发布2019-01-14 17:21:02
5890
发布2019-01-14 17:21:02
举报
文章被收录于专栏:Frank909Frank909

build.gradle配置

顶层build.gradle

代码语言:javascript
复制
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath "io.realm:realm-gradle-plugin:1.2.0"
    }
}

app模块中的build.gradle

代码语言:javascript
复制
apply plugin: 'realm-android'

任何数据库都无非是CRUD的操作,也就是为了增、删、改、查的使命。 相对于传统的原生的Sqlite开发,Realm的API使开发者显得轻松自在。

初始化

使用Realm需要配置RealmConfiguration.代码很简单如下:

代码语言:javascript
复制
Real mRealm = Realm.getInstance(new RealmConfiguration.Builder(this)
                .name("test")
                .build());

1增加数据

1.1创建模型

创建模型只需要定义一个类继承自RealmObject

代码语言:javascript
复制
public class Apple extends RealmObject {

    private int id;

    private String color;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    @Override
    public String toString() {
        return "Apple{" +
                "id=" + id +
                ", color='" + color + '\'' +
                '}';
    }
}

1.2保存数据

保存一个java类数据到Realm,只需调用它的createObject方法。 Realm保存数据的示例代码如下:

代码语言:javascript
复制
mRealm.executeTransaction(new Realm.Transaction() {
            @Override
            public void execute(Realm realm) {
                Apple mApple = mRealm.createObject(Apple.class);
                mApple.setId(1);
                mApple.setColor("red");
            }
        });

executeTransaction()打开一个事务,这是为了保证往Realm增加数据时,数据的一致性。 当调用createObject()的时候,数据对象就已经保存在Realm中了,是不是特别简单?

2查询数据

查询的结果保存在RealmResults对象中 示例代码:

代码语言:javascript
复制
final RealmResults<Apple> realmResults = mRealm.where(Apple.class).findAll();

for(Apple apple:realmResults){
    Log.d(TAG, "query "+apple.toString());
}

3删除数据

Realm支持从查询的结果当中删除某一项或者全部项

代码语言:javascript
复制
final RealmResults<Apple> realmResults = mRealm.where(Apple.class).findAll();

mRealm.executeTransaction(new Realm.Transaction() {
            @Override
            public void execute(Realm realm) {
                // remove single match
                realmResults.deleteFirstFromRealm();
                realmResults.deleteLastFromRealm();

                // remove a single object
                Apple dog = realmResults.get(5);
                dog.deleteFromRealm();

                // Delete all matches
                realmResults.deleteAllFromRealm();
            }
        });

4更新数据

Realm更新数据十分及时,只要在查询的结果集中找出相应的数据项然后进行相关的更新,数据就更新到了Realm.

代码语言:javascript
复制
mRealm.executeTransaction(new Realm.Transaction() {
            @Override
            public void execute(Realm realm) {
                Apple apple = realm.where(Apple.class).findFirst();
                //已经更新
                apple.setColor("yellow");
            }
        });

了解了增、删、改、查的功能后,我们就能用Realm进行简单的数据库开发。

后面的文章我非讲解它更高级的特性和用法。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年09月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • build.gradle配置
    • 顶层build.gradle
      • app模块中的build.gradle
      • 初始化
      • 1增加数据
        • 1.1创建模型
          • 1.2保存数据
          • 2查询数据
          • 3删除数据
          • 4更新数据
          相关产品与服务
          数据库
          云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档