GreenDao数据库的使用方法

本文介绍如何使用GreenDAO进行Android应用的数据持久化操作,包括设置GreenDAO环境、定义实体类、实现基本的增删改查功能等。

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

Project gradle依赖

buildscript {
    repositories {
        jcenter()

        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.1'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'

Module gradle依赖
apply plugin: 'org.greenrobot.greendao'
compile 'org.greenrobot:greendao:3.2.2'
greendao {
    schemaVersion 1
    daoPackage 'com.example.zhang20171130.gen'   //改成当前工程的包名.gen
    targetGenDir 'src/main/java' }
在Bean类中加入注解
@Entity
public class Person {
    @Id
    private Long id;
Build--Make Module 编译一下
DbHelper
public class DbHelper {
    private static volatile DbHelper instance;
    private final DaoSession daoSession;
    private final DaoMaster daoMaster;


    public DbHelper(Context context) {
        //初始化数据库的一些配置
        DaoMaster.DevOpenHelper helper=new DaoMaster.DevOpenHelper(context,"user",null);
        //获取数据库的操作对象
        SQLiteDatabase database = helper.getWritableDatabase();
        //获取DaoMaster对象
        daoMaster = new DaoMaster(database);
        //获取DaoSession对象
        daoSession =daoMaster.newSession();

    }
    public static DbHelper getInstance(Context context){
        if(instance == null){
            synchronized (DbHelper.class){
                if(null==instance){
                    instance=new DbHelper(context);
                }

            }
        }
        return instance;
    }
    public PersonDao getPerson(){
        return daoSession.getPersonDao();
    }

}
增删改查的方法
@OnClick({R.id.zeng, R.id.shan, R.id.gai, R.id.cha})
public void onViewClicked(View view) {
    switch (view.getId()) {
        case R.id.zeng:
            Person p=new Person();
            p.setId(Long.parseLong(ed1.getText().toString()));
            p.setName(ed2.getText().toString());
            dao.insert(p);
            break;
        case R.id.shan:
            Person p1=new Person();
            p1.setId(Long.parseLong(ed1.getText().toString()));
            p1.setName(ed2.getText().toString());
            dao.delete(p1);
            break;
        case R.id.gai:
            Person p2=new Person(Long.parseLong(ed1.getText().toString()),ed2.getText().toString());
            dao.update(p2);
            break;
        case R.id.cha:
            persons = dao.loadAll();
            adapter = new Adapter(this,persons);
            lv.setAdapter(adapter);
            adapter.notifyDataSetChanged();
            break;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值