GreenDao数据库框架入门

第1步:在module的build.gradle里加入引用

implementation 'org.greenrobot:greendao:3.2.2'
implementation 'org.greenrobot:greendao-generator:3.2.2'

并在顶部第加入:

//在 apply plugin: 'com.android.application'  下面加入即可
apply plugin: 'org.greenrobot.greendao'

在android的节点下加入:

    greendao {
        schemaVersion 1//数据库版本号
        daoPackage 'com.greendaodemo.www.greendao'//设置DaoMaster、DaoSession、Dao包名
        targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
    }

在项目的build.gradle的dependencies加入:

        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'

 

第2步:新建bean类,比如User,并定义出属性,不用添加getter和setter方法,并在类上添加注解@Entity(注意添加一个long类型的id)

import org.greenrobot.greendao.annotation.Entity;

@Entity
public class User {
    private long id;
    private String name;
    private int age;
    private double money;

}

第3步:点击build下的Make Module

然后可以看到User类已经发生变化:

并且在自定义的路径下自动生成了3个类:

第4步:初始化GreenDao,个人建议新建一个DBUtil,专门去处理和数据库操作的业务逻辑,比如:通过id查找用户,通过名字查找用户,删除用户等等操作,献上我的demo里的Util

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import com.greendaodemo.www.User;
import com.greendaodemo.www.greendao.DaoMaster;
import com.greendaodemo.www.greendao.DaoSession;
import com.greendaodemo.www.greendao.UserDao;

import java.util.List;

public class DBUtil {
    private static final String DB_NAME = "demo.db";
    private static DaoSession mDaoSession;

    public static void initDBUtil(Context context) {
        SQLiteOpenHelper mHelper = new DaoMaster.DevOpenHelper(context, DB_NAME, null);
        SQLiteDatabase db = mHelper.getWritableDatabase();
        // 注意:该数据库连接属于 DaoMaster,所以多个 Session 指的是相同的数据库连接。
        DaoMaster mDaoMaster = new DaoMaster(db);
        mDaoSession = mDaoMaster.newSession();
    }

    /**
     * 通过id查user
     *
     * @param id
     * @return
     */
    public static User getUserById(long id) {
        return mDaoSession.getUserDao().loadByRowId(id);
    }

    /**
     * 通过名字查询,返回列表
     *
     * @param name
     * @return
     */
    public static List<User> getUserByName(String name) {
        List<User> userList = mDaoSession.getUserDao().queryBuilder()
                .where(UserDao.Properties.Name.eq(name))
//                .orderDesc(UserDao.Properties.Id)
                .list();
        return userList;
    }

    /**
     * 添加user
     *
     * @param user
     * @return
     */
    public static long addUser(User user) {
        return mDaoSession.getUserDao().insert(user);
    }

    /**
     * 通过id修改user
     *
     * @param user
     */
    public static void updateUserById(User user) {
        mDaoSession.getUserDao().update(user);
    }

    /**
     * 通过id删除user
     *
     * @param id
     */
    public static void deleteUserById(long id) {
        mDaoSession.getUserDao().deleteByKey(id);
    }

    /**
     * 读取所有user
     *
     * @return
     */
    public static List<User> getAllUser() {
        return mDaoSession.getUserDao().loadAll();
    }


    /**
     * 删除所有user
     *
     * @return
     */
    public static void deleteAllUser() {
        mDaoSession.getUserDao().deleteAll();
    }


}

最后在application里的onCreate里初始化一下就可以用了:

DBUtil.initDBUtil(this);

最后说明一下,数据库在升级的时候,会导致原数据丢失,防止数据丢失方法请看GreenDao数据库升级防止数据丢失工具类

 

module下载地址:https://download.csdn.net/download/u012954039/10942011

注意是module,不是project!!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值