美文网首页
数据库框架Realm详解(一)

数据库框架Realm详解(一)

作者: 东邪Zzz | 来源:发表于2019-02-22 10:39 被阅读0次

    Realm是一款数据库框架,在Android和iOS上都适用,github地址Realm
    官方文档

    开始使用

    使用前我们应该注意的事情:


    Prerequisites.jpg
    • 需要AS版本>=1.5
    • JDK版本>=1.7
    • Android SDK的最新版本
    • Android API>=9
      注意:Realm不支持Android之外的Java。不再支持Eclipse作为IDE;请迁移到Android Studio。

    1.配置Realm

    Realm是以插件的形式添加进来的
    Step 1: Add the class path dependency to the project level build.gradle file.
    第一步,在项目级别下的build.gradle文件下配置如下:

    buildscript {
        repositories {
            jcenter()
        }
        dependencies {
            classpath "io.realm:realm-gradle-plugin:5.9.0"
        }
    }
    

    Step 2: Apply the realm-android plugin to the top of the application level build.gradle file.
    第二步,在Model级别下的build.gradle文件下配置如下:

    apply plugin: 'realm-android'
    

    完成这两步后,Realm就被添加进来了。如果你要是更新版本,你还需要clean your gradle project.

    2.注册Realm

    我们在使用之前应该先注册,注册方法如下:

    Realm.init(context);
    

    建议自定义一个Application ,在Application中完成注册:

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

    完成了在Application中注册,不要忘记在AndroidManifest.xml注册你的Application:

    <application
      android:name=".MyApplication"
      ...
    />
    

    3.简单使用

    3.1 初始化
    // Get a Realm instance for this thread
    Realm realm = Realm.getDefaultInstance();
    

    使用Realm的默认配置
    Realm可以自定义配置,使用RealmConfiguration,这个之后会再详细说到

    3.2 创建实体类

    完成注册和初始化之后,我们需要创建我们的实体类。

    public class User extends RealmObject {
        private String name;
        private int age;
    
        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;
        }
        @Override
        public String toString() {
            return "User{" +
                    "age='" + age + '\'' +
                    ", name='" + name +
                    '}';
        }
    }
    

    Realm支持public、protected、private

    3.3 具体使用

    Realm的操作都需要在事务中操作,比如我们插入一条数据

            realm.beginTransaction();
            User user = mrealm.createObject(User.class);
            user.setAge(18);
            user.setName("Realm");
            mrealm.commitTransaction();
    

    查找我们插入的数据

       public void findUser(View view) {
            final RealmResults<User> userRealmResults = mrealm.where(User.class).findAll();
            showUser(userRealmResults);
        }
        private void showUser(RealmResults<User> userRealmResults) {
            Toast.makeText(this, "size : " + userRealmResults.size(), Toast.LENGTH_SHORT).show();
            for (User u : userRealmResults) {
                Log.d(TAG, u.toString());
            }
        }
    

    查找结果

    02-22 10:26:30.214 20239-20239/zzl.com.realmdemo D/MainActivity: User{age='18', name='Realm}
    

    这里我做了查找全部数据,只是为了演示Realm的一些基本用法。

    这篇就先到这里了,没有什么难点,全是最基本的东西,之后慢慢加深。码字真的好费劲,做安卓这么长时间了,不怎么写东西,因为码字比较烦。从这篇算个开始吧,之后会慢慢更新,把自己的学习成果记录下来。不为给别人当做多牛逼的东西,只是为了记录自己。如果对你有所帮助,劳烦赞一下;如果耽误你的时间,不好意思,谁让你点开了呢,哈哈哈哈。


    007E254D.jpg

    相关文章

      网友评论

          本文标题:数据库框架Realm详解(一)

          本文链接:https://www.haomeiwen.com/subject/atrsyqtx.html