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的时候报
    在这里插入图片描述
    把项目的:
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<PhoneBean> queryAll(){
        return daoSession.loadAll(PhoneBean.class);
    }
}

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值