zoukankan      html  css  js  c++  java
  • Android Realm初试

    Realm is a mobile database that runs directly inside phones, tablets or wearables. This repository holds the source code for the Java version of Realm, which currently runs only on Android.

    Realm是一个移动端的数据库,它可以在手机、平板。穿戴设备上运行。这个仓库的代码是一个Java版本的代码,目前只用在安卓端。

    摘自:https://github.com/realm/realm-java

    导入JAR

      compile 'io.realm:realm-android:0.87.0'
    

    在Application 中配置,不配置也可以,就是默认的哦。

    public class MyApplication extends Application {
    
        @Override
        public void onCreate() {
            super.onCreate();
            initRealm();
        }
        private void initRealm(){
            RealmConfiguration configuration = new RealmConfiguration
                    .Builder(this)
                    .name("test.realm")
                    .deleteRealmIfMigrationNeeded()
                    .schemaVersion(7).migration(new RealmMigration() {
    
                        @Override
                        public void migrate(DynamicRealm realm, long oldVersion, long newVersion) {
    
                        }
                    }).build();
    
            Realm.setDefaultConfiguration(configuration);
        }
    }

    创建实体类,需集成RealmObject

    public class User  extends RealmObject{
        @PrimaryKey
        private String id;
        private String userName;
        private String mobile;
    
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
        public String getUserName() {
            return userName;
        }
    
        public void setUserName(String userName) {
            this.userName = userName;
        }
    
        public String getMobile() {
            return mobile;
        }
    
        public void setMobile(String mobile) {
            this.mobile = mobile;
        }
    }

    在Activity中初始化

    Realm myRealm ;
     myRealm= Realm.getInstance(this);

    添加数据:

      //Realm开始处理事物  方式1:
            myRealm.beginTransaction();
            User user = myRealm.createObject(User.class);
            user.setId("445115");
            user.setMobile("44545");
            user.setUserName("hha");
            myRealm.commitTransaction();
            //方式2:
      User user2=new User();
            user2.setId("1123");
            user2.setUserName("sss");
            user2.setMobile("445");
            myRealm.beginTransaction();
            User userCopy2 = myRealm.copyToRealm(user2);
            myRealm.commitTransaction();
    

    查找数据

     RealmResults<User> listUser = myRealm.where(User.class).findAll();
    
            StringBuilder stringBuilder=new StringBuilder();
    
            for(User u:listUser) {
                stringBuilder.append(u.getUserName()+"--------****--------- ");
                Log.d("results1",u.getUserName());
            }
            tv.setText(stringBuilder.toString());
    

    代码并不难,希望通过我这个例子,一是巩固自己的学习和理解,二是希望更多的人更好的学习,我会再接再厉,写更多的博文。

    源码下载

    csdn博客

  • 相关阅读:
    bzoj4753: [Jsoi2016]最佳团体(分数规划+树形依赖背包)
    bzoj2956: 模积和(数论)
    51nod 1766 树上的最远点对(线段树)
    bzoj2621: [Usaco2012 Mar]Cows in a Skyscraper(状压DP)
    Codeforces Round #441 Div. 2题解
    bzoj4569: [Scoi2016]萌萌哒(ST表+并查集)
    iOS和Android后台机制对比
    UIApplicationDelegate 各方法回调时机
    iOS OC和JS的交互 javaScriptCore方法封装
    iOS应用的执行原理
  • 原文地址:https://www.cnblogs.com/forezp/p/9852211.html
Copyright © 2011-2022 走看看