Realm android 使用(一)

最近闲下来学习了有关Realm的使用,写下来,作为自己的学习笔记。

官方开发文档:https://realm.io/docs/java/latest/#examples

Realm是一个可以替代SQLite以及ORMlibraries的轻量级数据库。相比SQLite,Realm更快并且具有很多现代数据库的特性,比如支持JSON,流式api,数据变更通知,以及加密支持,这些都为安卓开发者带来了方便。

目前版本2.2.1 ,从1.0.0之后只支持android studio导入

1.      引入工程

1.在工程gradle中:添加库classpath "io.realm:realm-gradle-plugin:2.2.1"

2.在app.gradle中引入库  apply plugin: 'realm-android'

3.同步项目即可,不必添加混淆规则。

2.  首先介绍下简单实用

  1)创建一个Realm

     一个Realm就相当于一个sqlite,他是持久保存在app安装文件下的。

这里需要说明的是,在创建Realm之前应该先进行初始化。我们可以在入口处app进行初始化。

public class RealmApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Realm.init(getApplicationContext());
    }
}

要创建一个新的Realm,你可以在任意Activity中调用静态方法Realm.getInstance。

Realm myRealm = Realm.getInstance(context);

注意,调用Realm.getInstance,而没有传入RealmConfiguration,会创建一个叫做 default.realm的Realm文件。此时这个default.realm就相当于sqlite中我们说的数据库名。

如果你想向app中添加另一个Realm,必须使用一个RealmConfiguration.Builder对象,并为 Realmfile 指定一个独有的名字。

Realm myOtherRealm =Realm.getInstance(

                newRealmConfiguration.Builder(context)

                       .name("myOtherRealm.realm")

                        .build()

);

  2)创建一个RealmObject类

     此时只需要写一个类继承RealmObject即可,只要继承了RealmObject类,任意JavaBean都能存储在Realm中。

     例: public class User extends RealmObject {

    private String name;

    private int age;

    public User() {

    }


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

如果你想让RealmObject的一个成员变量作为主键,你可以使用@PrimaryKey注解。下面会详解RealmObject的注解的含义,这里先不做介绍。

  3)创建transaction

在Realm中进行的数据处理都是在事务中进行的。关于事务的使用有好多种方法。

realm.executeTransaction(new Realm.Transaction() {
    @Override
    public void execute(Realm realm) {
        User user = realm.createObject(User.class);
        user.setName("xiaoming");
        user.setAge(2);
    }
});
RealmResults<User> users = realm.where(User.class).findAll();
for (User user :
        users) {
    Log.i("tag", "initView: "+user);
}

在此分别进行了数据的插入和查询的操作。

 今天就先到这了,接下来介绍Realm的进一步的用法

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值