GreenDao的使用方法和配置方法

Greendao在安卓开发中主要作用是数据库的操作,是一种安卓的轻量级数据库框架。使用Greendao可以简化一些数据库操作的基本代码,很多数据库的操作方法都是已经封装好的,现在我们就来说说一些有关Greendao的简单配置和简单的使用方法。

配置:1、首先需要在project工程下面的build.gradle的文件里面的dependencies的大括号里面写入

      classpath 'org.greenrobot:greendao-gradle-plugin:3.1.0'  这个地方是导入需要的jar包,这里我们使用3.1.0的版本Greendao的框架
     2、在app的工程下面的build.gradle文件里面的apply plugin: 'XXXX.XXX.XXXX.XXXX'下面输入apply plugin: 'org.greenrobot.greendao',在
buildTypes里面写入
greendao{
    schemaVersion 1
    targetGenDir 'src/main/java'
}
,记住是buildTypes里面,而不是release里面;
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    greendao{
        schemaVersion 1
        targetGenDir 'src/main/java'        这个地方是自动生成的配置文件存放在哪个位置的
    }
}
dependencies里面输入compile 'org.greenrobot:greendao:3.1.0',这就表明是引用这个框架了,那么配置完成了
     3、创建一个类,类里面的属性就是数据库创建的属性,比如创建了一个user的类,里面有name,age等属性,那么自动生成的数据库和配置文件里面也都是这些名字的,在类名上输入@Entity表示是需要使用这个类来创建,使用id的话,则需要创建一个使用Long类型的id作为主键,而不是long类型的,Greendao则会使主键id自增长,还需要在Long id上面输入@Id,这则是告诉Greendao这个是需要设置的主键。那么类创建好了,点击Build->Make Project,然后等待自动生成,生成好之后则可以看到DaoMaster等文件生成了。
     4、创建数据库的管理类;直接上代码。
public class DBManager {

    private final static String dbName = "User_db";    //数据库的名字
    private static DBManager mInstance;
    private DaoMaster.DevOpenHelper openHelper;
    private Context context;

    public DBManager(Context context) {
        this.context = context;
        openHelper = new DaoMaster.DevOpenHelper(context, dbName, null);
    }

    /**
     * 初始化管理类
     */
    public static DBManager getInstance(Context context) {
        if (mInstance == null) {
            synchronized (DBManager.class) {
                if (mInstance == null) {
                    mInstance = new DBManager(context);
                }
            }
        }
        return mInstance;
    }

    /**
     * 可读方法时调用
     */
    private SQLiteDatabase getReadableDatabase() {
        if (openHelper == null) {
            openHelper = new DaoMaster.DevOpenHelper(context, dbName, null);
        }
        SQLiteDatabase db = openHelper.getReadableDatabase();
        return db;
    }

    /**
     *可写方法时调用
     */
    private SQLiteDatabase getWritableDatabase() {
        if (openHelper == null) {
            openHelper = new DaoMaster.DevOpenHelper(context, dbName, null);
        }
        SQLiteDatabase db = openHelper.getWritableDatabase();
        return db;
    }

    /**
     * 插入一条记录
     *
     * @param user
     */
    public void insertUser(username user) {
        DaoMaster daoMaster = new DaoMaster(getWritableDatabase());
        DaoSession daoSession = daoMaster.newSession();
        usernameDao userDao = daoSession.getUsernameDao();
        userDao.insert(user);
    }


    /**
     * 删除全部记录
     */
    public void deleteUser() {
        DaoMaster daoMaster = new DaoMaster(getWritableDatabase());
        DaoSession daoSession = daoMaster.newSession();
        usernameDao userDao = daoSession.getUsernameDao();
        userDao.deleteAll();
    }

    /**
     * 更新一条记录
     *
     * @param user
     */
    public void updateUser(username user) {
        DaoMaster daoMaster = new DaoMaster(getWritableDatabase());
        DaoSession daoSession = daoMaster.newSession();
        usernameDao userDao = daoSession.getUsernameDao();
        userDao.update(user);
    }

    /**
     * 查询用户列表
     */
    public List<username> queryUserList() {
        DaoMaster daoMaster = new DaoMaster(getReadableDatabase());
        DaoSession daoSession = daoMaster.newSession();
        usernameDao userDao = daoSession.getUsernameDao();
        QueryBuilder<username> qb = userDao.queryBuilder();
        List<username> list = qb.list();
        return list;
    }
}
5、写好方法之后,就在MainActivity里面开始调用方法,首先需要声明一个
private DBManager manager;然后初始化
manager=new DBManager(MainActivity.this);之后就可以调用了,例如
//删除的方法
    manager.deleteUser();


//删除的方法
private void queryData(){
    List<username> list=manager.queryUserList();
    for (int i=0;i<list.size();i++){
        Log.d("rrr",list.get(i).getName());
    }
}
数据库的操作和配置就完成了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值