Realm是一個不錯的手機平臺上的數據庫,支持多種編程環境,如:Java、Object-C、React Native、Swift、Xamari等。html
Realm的官網:https://realm.io/java
github地址:https://github.com/realmandroid
realm-java庫的文檔:https://realm.io/docs/java/la...git
//1.工程gradle buildscript { repositories { jcenter() } dependencies { //1. 添加realm插件 classpath "io.realm:realm-gradle-plugin:1.2.0" } } //2. app的gradle apply plugin: 'realm-android' dependencies { compile 'io.realm:realm-android-library:1.2.0' }
package com.peter.schoolmarket.data.pojo; import java.io.Serializable; import io.realm.RealmObject; import io.realm.annotations.PrimaryKey; import io.realm.annotations.Required; /** * Created by PetterChen on 2017/4/10. */ public class User extends RealmObject implements Serializable { @PrimaryKey //主鍵id private int id;// private String username;//用戶名 private String password;//用戶密碼 private String phone;//手機號 private String imgUrl;//頭像地址 public User() { // } public void setId(int id) { this.id = id; } public void setUsername(String username) { this.username = username; } public void setPassword(String password) { this.password = password; } public void setPhone(String phone) { this.phone = phone; } public void setImgUrl(String imgUrl) { this.imgUrl = imgUrl; } public int getId() { return id; } public String getUsername() { return username; } public String getPassword() { return password; } public String getPhone() { return phone; } public String getImgUrl() { return imgUrl; } }
//Realm初始化,這是默認初始化,能夠自定義初始化 Realm.init(this);//this表示上下文 RealmConfiguration config = new RealmConfiguration.Builder().build();//能夠修改 Realm.setDefaultConfiguration(config);
能夠使用事務或者事務塊,對於事務塊,有同步的和異步的,若是使用異步事務塊,須要手動關閉github
//增,事務增 Realm realm=Realm.getDefaultInstance(); realm.beginTransaction(); realm.copyToRealm(user); realm.commitTransaction(); //增,事務塊增 Realm mRealm=Realm.getDefaultInstance(); mRealm.executeTransaction(new Realm.Transaction() { @Override public void execute(Realm realm) { realm.copyToRealm(user); } }); //刪,事務塊刪 Realm mRealm=Realm.getDefaultInstance(); final RealmResults<Dog> dogs= mRealm.where(Dog.class).findAll(); mRealm.executeTransaction(new Realm.Transaction() { @Override public void execute(Realm realm) { Dog dog=dogs.get(5); dog.deleteFromRealm(); //刪除第一個數據 dogs.deleteFirstFromRealm(); //刪除最後一個數據 dogs.deleteLastFromRealm(); //刪除位置爲1的數據 dogs.deleteFromRealm(1); //刪除全部數據 dogs.deleteAllFromRealm(); } }); //同理,也能夠使用事務刪 //查,查詢所有 Realm mRealm=Realm.getDefaultInstance(); RealmResults<Dog> dogs = mRealm.where(Dog.class).findAll(); List<Dog> list = mRealm.copyFromRealm(dogs); //查,條件查詢 Realm mRealm=Realm.getDefaultInstance(); Dog dog = mRealm.where(Dog.class).equalTo("id", id).findFirst(); //改 Realm mRealm=Realm.getDefaultInstance(); Dog dog = mRealm.where(Dog.class).equalTo("id", id).findFirst(); mRealm.beginTransaction(); dog.setName(newName); mRealm.commitTransaction();
這篇博文算不上是原創,都是參考其它博文寫的,只是爲了之後本身有用到Realm時,能夠不用再去查資料。
參考博文:
http://blog.csdn.net/fwt336/a...
http://www.cnblogs.com/liushi...
http://www.jianshu.com/p/fdc9...數據庫