Realm数据库听说的时候是在2016年初左右吧,还是听一个网易的哥们说起.才了解到的.Realm是一个MVCC的数据库.底层使用C++写的.MVCC指的是多版本并发控制.
本篇文章先去带大家如何使用Realm,下篇介绍Realm的内部规则.
我们不在支持eclipse作为IDE;所以请使用Android Studio;
提示1:添加文件路径是你的project 的 build.gradle 文件.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "io.realm:realm-gradle-plugin:3.0.0"
} }
apply plugin: ‘realm-android’
现在开发出了一个mac版本的Ream数据浏览器,用于查看和编辑,这个应用不支持windows和linux,windows的同学可以使用stetho chrom插件进行查看调试.由facebook产出.至于使用方法可以看我的 如何用googleChrome调试Android程序呢?_Stetho.
macRealm浏览器下载地址.github下载地址
package cn.yky.realm;
import android.app.Application;
import io.realm.Realm;
/** * Created by yukuoyuan on 2017/3/24. */
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Realm.init(this);
} }
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
//初始化Realm
realm = Realm.getDefaultInstance();
}
package cn.yky.realm;
import io.realm.RealmObject;
/**
* Created by yukuoyuan on 2017/3/24.
* 这是一个Realm 的Modal
*/
public class User extends RealmObject {
public String Name;
public int Age;
public int sex;
}
/**
* 这是一个添加一条数据的方法
*/
public void add() {
i = i + 1;
realm.beginTransaction();
User user = realm.createObject(User.class); // Create a new object
user.Name = "王祖贤";
user.Age = 23 + i;
user.sex = 0;
realm.commitTransaction();
}
/**
* 这是一个删除一条数据的方法
*/
public void delete() {
realm.beginTransaction();
RealmResults guests = realm.where(User.class).equalTo("sex", 0).findAll();
for (User guest : guests) {
if (guest.Age > 28) {
guest.deleteFromRealm();
}
}
realm.commitTransaction();
}
/**
* 这是一条更新的方法
*/
public void updata() {
realm.beginTransaction();
RealmResults guests = realm.where(User.class).equalTo("sex", 0).findAll();
for (User guest : guests) {
guest.Age = 48;
}
realm.commitTransaction();
}
/**
* 这是一个一个查询的方法
*/
public void query() {
realm.beginTransaction();
RealmResults guests = realm.where(User.class).equalTo("sex", 0).findAll();
realm.commitTransaction();
tvShow.setText("");
String show = "";
for (User guest : guests) {
show = show + "/\n" + guest.Name + "**" + guest.Age + "**" + guest.sex;
}
tvShow.setText(show);
}
该示例代码我已经上传到github:github机票
后续我会讲解,Realm的内部调用规则,和更加复杂的使用.欢迎后续关注我.谢谢