Greendao使用

本文详细介绍Greendao数据库在Android应用开发中的使用步骤,包括依赖添加、实体类创建、数据库操作类编写等核心内容,适合初学者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Greendao使用
第一步,添加依赖,在项目目录中的build.gradle添加以下依赖

//在repositories里添加mavenCentral()【如果添加了就不用再添加了!!!】

repositories {
mavenCentral()
}

//在dependencies里添加
dependencies {
classpath ‘org.greenrobot:greendao-gradle-plugin:3.2.2’ // add plugin
}

第二步,添加依赖,在App目录中的build.gradle添加以下依赖

apply plugin: ‘org.greenrobot.greendao’ // apply plugin

//在dependencies里添加
implementation ‘org.greenrobot:greendao:3.2.2’ // add library

第三步,在App目录中的build.gradle添加生成操作数据库类

greendao {
schemaVersion 1 //版本
daoPackage ‘ming.abner.com.app1102.greendao’ // 一般为app包名+生成文件的文件夹名
targetGenDir ‘src/main/java’ //生成文件路径
}

第四步,使用

创建实体类JavaBean,例如,你想对资讯列表进行缓存,你可以创建个NewsBean,想缓存哪些数据,就创建对应数据的JavaBean
缓存两种方式

第一种,最简单就,缓存请求回来的json数据,创建后,两个字段就可以了,一个是主键Id,一个是用于缓存的String,data 写好之后,按住Ctrl+F9,或者点小锤子,或者点击最上面Build再点击Make Project,就可以了

@Entity
public class NewsBean{
@Id(autoincrement = true)
private Long id;

private String data;

}

第二种,缓存对象,就是以对象的形式进行缓存,根据你请求的数据进行写JavaBean,例如:

请求Json数据形式

{
“items”: [
{
“title”: “我是测试数据001”,
“image”: “https://img.huxiucdn.com/article/cover/201809/06/101957946778.jpg?imageView2/1/w/400/h/225/|imageMogr2/strip/interlace/1/quality/85/format/jpg”,
“desc”: “我是描述信息”
},
{
“title”: “我是测试数据002”,
“image”: “https://img.huxiucdn.com/article/cover/201809/06/083640902580.jpg?imageView2/1/w/400/h/225/|imageMogr2/strip/interlace/1/quality/85/format/jpg”,
“desc”: “我是描述信息”
}
]
}

缓存对象形式,就是缓存需要缓存的字段,title,image,desc,当然了,在实际开发中,根据返回数据进行写

@Entity
public class NewsBean{
@Id(autoincrement = true)
private Long id;

private String title;
private String image;
private String desc;

}

写好之后,按住Ctrl+F9,或者点小锤子,或者点击最上面Build再点击Make Project,就可以了
第五步,生成

生成之后,就会生成一个greendao包,包里的类就是我们操作数据库的类
第六步,创建数据库操作类

public class NewsBeanJsonUtils {

private NewsBeanJsonDao newsDao;

private NewsBeanJsonUtils() {
}

private static NewsBeanJsonUtils mNewsBeanUtils;

public static NewsBeanJsonUtils getNewsBeanJsonUtils() {
    if (mNewsBeanUtils == null) {
        mNewsBeanUtils = new NewsBeanJsonUtils();
    }
    return mNewsBeanUtils;
}

//初始化
public void init(Context context) {
    DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(context, "news");
    SQLiteDatabase db = helper.getWritableDatabase();
    DaoMaster mDaoMaster = new DaoMaster(db);


    newsDao=mDaoMaster.newSession().getNewsBeanJsonDao();
}
//增
public void insert(NewsBeanJson newsBean){
    newsDao.insert(newsBean);
}
//查询全部
public List<NewsBeanJson> queryAll(){
    return newsDao.loadAll();
}

//查询单个
public NewsBeanJson query(String key){
  return  newsDao.load(Long.parseLong(key));
}

//删除全部
public void deleteAll(){
    newsDao.deleteAll();
}

//删除单个
public void  delete(String key){
    newsDao.deleteByKey(Long.parseLong(key));
}

//改
public void update(NewsBeanJson newsBean){
    newsDao.update(newsBean);
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值