android greenDao的使用

今天居然看到有人给我点赞,其实还是蛮开心的。以后写博客尽量写的详细点。再接再厉
android数据库的操作,除了SQLiteOpenHelper工具以外,还提供了GreenDao来实现,底层也是使用SQLiteOpenHelper来实现的
1.github地址 https://github.com/greenrobot/greenDAO
2.依赖参照github
 

buildscript {
    repositories {
        jcenter()
        mavenCentral() // add repository
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.1'
        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
    }
}
 
// In your app projects build.gradle file:
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao' // apply plugin
 
dependencies {
    implementation 'org.greenrobot:greendao:3.2.2' // add library
}

3.构建数据库实体

@Entity
public class PersonRes {
    @Id(autoincrement = true)//主键自增长
    private Long id;
    @NotNull//不能为空
    private String name;
    @NotNull
    private int age;
}

4.在gradle文件中配置生成数据库工具文件的路径
schemaVersion 1
daoPackage 'com.dejun.commonsdk.gen'//此处要写成你的项目包名.gen(新建目录名称)
targetGenDir 'src/main/java'

5.点击Build里的Make Project会自动在com.dejun.commonsdk下生成gen目录,在gen目录下有DaoMaster和DaoSession两个文件

6.使用

public class GreenDaoUtil {
    private DaoManager daoManager;

    public GreenDaoUtil(Context context) {
        daoManager = DaoManager.getInstance();
        daoManager.init(context);
    }
    /**
     * 插入数据,如果表未创建,先创建表
     */
    public boolean insert(PersonRes personRes){
        boolean flag=false;
        flag=daoManager.getDaoSession().getPersonResDao().insert(personRes)==-1?false:true;
        Logger.d("insert:"+personRes);
        return flag;
    }
    /**
     * 插入多条数据
     */
    public void insertList(final List<PersonRes> personResList){
        daoManager.getDaoSession().runInTx(new Runnable() {
            @Override
            public void run() {
                for (PersonRes personRes:personResList ){
                    daoManager.getDaoSession().insertOrReplace(personRes);
                }
            }
        });
    }
    /**
     * 修改一条数据
     */
    public boolean update(PersonRes personRes){
        boolean flag=false;
        try {
            daoManager.getDaoSession().update(personRes);
            flag=true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return flag;
    }
    /**
     * 删除单条数据
     */
    public boolean delete(PersonRes personRes){
        boolean flag=false;
        try {
            daoManager.getDaoSession().delete(personRes);
            flag=true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return flag;
    }
    /**
     * 删除所有数据
     */
    public boolean deleteAll(){
        boolean flag=false;
        try {
            daoManager.getDaoSession().deleteAll(PersonRes.class);
            flag=true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return flag;
    }
    /**
     * 查询所有记录
     */
    public List<PersonRes> queryAll(){
        return daoManager.getDaoSession().loadAll(PersonRes.class);
    }
}
 

猜你喜欢

转载自blog.csdn.net/Anthonybuer/article/details/84977482