Realm简单使用
16lz
2021-01-26
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、说明我们的操作没有任何问题、基本就这样 、这里写的很简单、如果需要深入请看官网文档。
更多相关文章
- android values-v11和values-v14文件夹是干啥的?
- Android(安卓)Studio 新导入项目时各种报错及解决__2019.08.20
- android下载系统版本步骤(通过SecureCRT)
- SQLite(或LitePal)查询速度很慢原因分析
- Android(安卓)studio3.0上运行opencv3.2.0自带人脸识别实例Demo
- Linux系统Android(安卓)NDK编译环境搭建
- IT蓝豹强烈推荐:符合1-2年工作经验,开发中的难点及相关优化:
- GreenDao 问题集合
- [转]微信ANDROID客户端-会话速度提升70%的背后