GreenDao配置及使用

一:配置

1.在项目的build.gradle下加
dependencies {
//greenDao生产代码插件
classpath ‘org.greenrobot:greendao-gradle-plugin:3.2.2’ // add plugin
}
2.在Module下的build.gradle文件加
apply plugin: ‘org.greenrobot.greendao’ // apply plugin
android {

//greendao配置
greendao {
//数据库版本号,升级时修改
schemaVersion 1
//生成的DAO,DaoMaster和DaoSession的包路径。默认与表实体所在的包路径相同
daoPackage ‘com.example.xts.greendaodemo.db’
//生成源文件的路径。默认源文件目录是在build目录中的(build/generated/source/greendao)
targetGenDir ‘src/main/java’
}
}

dependencies {
//greenDAO配置
implementation ‘org.greenrobot:greendao:3.2.2’ // add library
implementation ‘org.greenrobot:greendao-generator:3.2.2’
}

  • 配置完1后同步,在配置2,如果同步2的时候报
    GreenDao配置及使用_第1张图片
    把项目的:
    classpath ‘org.greenrobot:greendao-gradle-plugin:3.3.0’ // add plugin 3.2.2改成3.3.0
    把Module的:
    implementation ‘org.greenrobot:greendao-generator:3.3.0’ // 3.2.2改成3.3.0
    *以上两步如果没有问题配置完成

二:使用

1.创建实体类

@Entity
public class Bean {
@Id
private Long id;//必须为Long类型,大写
private String date;
@Unique
private String key;
private int step;
@Transient//表示该字段不会插入数据库
....
}

2.创建一个自己的application,继承Application

public class App extends Application {
    private static DaoSession daoSession;
    @Override
    public void onCreate() {
        super.onCreate();
        DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(this, "user.db");
        DaoMaster daoMaster = new DaoMaster(devOpenHelper.getWritableDatabase());
        daoSession = daoMaster.newSession();
    }
    public static DaoSession getSession(){
        return daoSession;
    }
}

3.创建一个工具类DbUtils

public class DbUtil {
    static {
        daoSession = App.getSession();
    }
    static DaoSession daoSession;
    //插入
    public static void insert(PhoneBean bean){
        if(!queryOne(bean)){
            daoSession.insert(bean);
        }
    }
    //删除
    public static void delete(PhoneBean bean){
        if(queryOne(bean)){
            daoSession.delete(bean);
        }
    }
    //查询单个
    public static boolean queryOne(PhoneBean bean){
        PhoneBean unique = daoSession.queryBuilder(PhoneBean.class)
                .where(PhoneBeanDao.Properties.Phone.eq(bean.getPhone()))
                .unique();
        return unique==null?false:true;
    }
    //查询所有
    public static List queryAll(){
        return daoSession.loadAll(PhoneBean.class);
    }
}

4.在清单文件中配置自己的application
android:name=".ui.App"
5.在需要使用的地方直接调用即可

你可能感兴趣的:(andrioid)