Realm数据库框架的使用例子

来源:互联网 发布:淘宝短链接生成 编辑:程序博客网 时间:2024/05/16 03:12

对于android而言数据库非常重要,我们可以使用数据库的开源框架简化自己的数据库的开发过程。其中我比较中意Realm,使用它能够大量减少代码,效率也可观。

首先我们来学会如何配置环境
1. 在project的build.gradle里加
classpath “io.realm:realm-gradle-plugin:2.0.2”

2 . 在model的build.gradle里加
apply plugin: ‘realm-android’
3. 使用,对于这个我做一个比较完善的例子展现给大家。

这个例子逻辑是这样的首先将
private String[] yearArray = {“鼠年”, “牛年”, “虎年”, “兔年”, “龙年”, “蛇年”,
“马年”, “羊年”, “猴年”, “鸡年”, “狗年”, “猪年”}这些传入RecyclerView里显示,第一次显示并记载在数据库里,下次判断数据库有数据后就读取数据库的数据展现出来,然后那个按钮可以添加数据并且更新界面,添加的数据也存入数据库

让我先发一个Realm的封装类,方便大家使用

package android.com.realmtest;import android.content.Context;import java.util.List;import io.realm.Realm;import io.realm.RealmResults;/** * Created by matou0289 on 2016/10/20. */public class RealmHelper {    public static final String DB_NAME = "myRealm.realm";    private Realm mRealm;    public RealmHelper(Context context) {        mRealm = Realm.getDefaultInstance();    }    /**     * add (增)     */    public void addDog(final Dog dog) {        mRealm.beginTransaction();        mRealm.copyToRealm(dog);        mRealm.commitTransaction();    }    /**     * delete (删)     */    public void deleteDog(String id) {        Dog dog = mRealm.where(Dog.class).equalTo("id", id).findFirst();        mRealm.beginTransaction();        dog.deleteFromRealm();        mRealm.commitTransaction();    }    /**     * update (改)     */    public void updateDog(String id, String newName) {        Dog dog = mRealm.where(Dog.class).equalTo("id", id).findFirst();        mRealm.beginTransaction();        dog.setName(newName);        mRealm.commitTransaction();    }    /**     * query (查询所有)     */    public List<Dog> queryAllDog() {        RealmResults<Dog> dogs = mRealm.where(Dog.class).findAll();        /**         * 对查询结果,按Id进行排序,只能对查询结果进行排序         */        //增序排列        dogs=dogs.sort("id");//        //降序排列//        dogs=dogs.sort("id", Sort.DESCENDING);        return mRealm.copyFromRealm(dogs);    }    /**     * query (根据Id(主键)查)     */    public Dog queryDogById(String id) {        Dog dog = mRealm.where(Dog.class).equalTo("id", id).findFirst();        return dog;    }    /**     * query (根据age查)     */    public List<Dog> queryDobByAge(int age) {        RealmResults<Dog> dogs = mRealm.where(Dog.class).equalTo("age", age).findAll();        return mRealm.copyFromRealm(dogs);    }    public boolean isDogExist(String id){        Dog dog=mRealm.where(Dog.class).equalTo("id",id).findFirst();        if (dog==null){            return false;        }else {            return  true;        }    }    public Realm getRealm(){        return mRealm;    }    public void close(){        if (mRealm!=null){            mRealm.close();        }    }}

至于例子的其他代码我就不发了,我直接分享下载地址
Realm应用例子-CSDN下载
http://download.csdn.net/detail/z979451341/9905178

原创粉丝点击