Realm简单使用

Realm Java 能够高效地编写 app 的模型层代码,但是项目中暂时没有用到、这里就简单的使用一下、很简单的使用 
前提:
  还不支持 Android 以外的 Java 环境;
  Android Studio >= 1.5.1 ;
  较新的 Android SDK 版本;
  JDK 版本 >=7;
  Android API 9 以上的所有版本(Android 2.3 Gingerbread 及以上)

添加依赖:
这里写图片描述
创建ben并且继承RealmObject ,@PrimaryKey 可以用来定义字段为主键,该字段类型必须为字符串或整数(short、int 或 long)。不可以存在多个主键。使用支持索引的属性类型作为主键同时意味着为该字段建立索引(

解释来自官网:https://realm.io/docs/java/latest/

) :

public class PersonBen extends RealmObject {

    @PrimaryKey
    @Required
    private int Id;

    private String name;

    private int age;

    private RealmList<ChildBen> date;


    public int getId() {
        return Id;
    }

    public void setId(int id) {
        Id = id;
    }

    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;
    }


    public RealmList<ChildBen> getDate() {
        return date;
    }

    public void setDate(RealmList<ChildBen> date) {
        this.date = date;
    }


}
public class ChildBen extends RealmObject {

    public String getWorkadding() {
        return workadding;
    }

    public void setWorkadding(String workadding) {
        this.workadding = workadding;
    }



    public String getHobyy() {
        return hobyy;
    }

    public void setHobyy(String hobyy) {
        this.hobyy = hobyy;
    }

    private String  workadding;

    public Boolean getSex() {
        return sex;
    }

    public void setSex(Boolean sex) {
        this.sex = sex;
    }

    private  Boolean sex;
    private String hobyy;

}

schemaVersion 设置版本号 不能为默认值,text为数据库名称、

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private Button realm_btn;
    private Realm mRealm;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        realm_btn = (Button) findViewById(R.id.realm_btn);
        realm_btn.setOnClickListener(this);
        mRealm = Realm.getInstance(new   RealmConfiguration.Builder(this).schemaVersion(1).name("text.realm").
                build());
        mRealm.beginTransaction();
        PersonBen personBen = mRealm.createObject(PersonBen.class);

        personBen.setId(0);
        personBen.setAge(25);
        personBen.setName("kangliang");

        mRealm.commitTransaction();

        ChildBen childBen = mRealm.createObject(ChildBen.class);
        childBen.setSex(true);
        childBen.setWorkadding("shanghai");
        childBen.setHobyy("programme");


        personBen.getDate().add(childBen);//多对对


        PersonBen personBen2 = new PersonBen();
        personBen2.setId(1);
        personBen2.setAge(24);
        personBen2.setName("zhangsan");

        mRealm.beginTransaction();


        PersonBen copy = mRealm.copyToRealm(personBen2);
        mRealm.commitTransaction();


    }

    @Override
    public void onClick(View v) {

        switch (v.getId()) {

            case R.id.realm_btn:

                RealmResults<PersonBen> results = mRealm.where(PersonBen.class).findAllSorted("name", false);


                for (PersonBen personBen : results) {
                    Log.i("111", "-------------" + personBen.getName());
                }

                break;


        }

    }
}

代码很简单、相信不用解释 、看打印结果吧、

这里写图片描述

ok、说明我们的操作没有任何问题、基本就这样 、这里写的很简单、如果需要深入请看官网文档。

你可能感兴趣的:(java,android,api,sdk,Realm)