数据库框架Realm详解(一)
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