android 数据库存储之GreenDao的使用

本文介绍了GreenDao,一个高效的Android ORM框架,用于简化SQLite数据库操作。GreenDao以其高性能、小内存占用和简洁API等优势脱颖而出。文中详细阐述了如何添加依赖库、创建映射类、管理数据库以及执行读写操作,包括用户数据的插入、删除和查询。
摘要由CSDN通过智能技术生成

1.GreenDao介绍
在项目开发过程中,涉及到存储,一般都用都SQlite,GreenDao是新出现的数据库,是一个对象关系映射(ORM)的框架,能够提供一个接口通过操作对象的方式去操作关系型数据库,它能够让你操作数据库时更简单、更方便
如图所示:
在这里插入图片描述
2.GreenDao的优势
1.性能高,号称Android最快的关系型数据库
2.内存占用小
3.库文件比较小,小于100K,编译时间低,而且可以避免65K方法限制
4.支持数据库加密 greendao支持SQLCipher进行数据库加密 有关SQLCipher可以参考这篇博客Android数据存储之Sqlite采用SQLCipher数据库加密实战
5.简洁易用的API
3.项目地址
github:https://github.com/greenrobot/greenDAO
4.GreenDao的使用
1.添加依赖库
在这里插入图片描述
2.建立映射类
在这里插入图片描述
3.数据库管理类DBManager
private DaoMaster.DevOpenHelper openHelper;
private Context context;

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

/**
 * 获取单例引用
 *
 * @param context
 * @return
 */
public static DBManager getInstance(Context context) {
    if (mInstance == null) {
        synchronized (DBManager.class) {
            if (mInstance == null) {
                mInstance = new DBManager(context);
            }
        }
    }
    return mInstance;
}

}

4.数据库读取
private SQLiteDatabase getReadableDatabase() {
if (openHelper == null) {
openHelper = new DaoMaster.DevOpenHelper(context, dbName, null);
}
SQLiteDatabase db = openHelper.getReadableDatabase();
return db;
}
5
.数据库存储

private SQLiteDatabase getWritableDatabase() {
if (openHelper == null) {
openHelper = new DaoMaster.DevOpenHelper(context, dbName, null);
}
SQLiteDatabase db = openHelper.getWritableDatabase();
return db;
}

6.数据库插入
public void insertUser(User user) {
DaoMaster daoMaster = new DaoMaster(getWritableDatabase());
DaoSession daoSession = daoMaster.newSession();
UserDao userDao = daoSession.getUserDao();
userDao.insert(user);
}

7.数据库删除
public void deleteUser(User user) {
DaoMaster daoMaster = new DaoMaster(getWritableDatabase());
DaoSession daoSession = daoMaster.newSession();
UserDao userDao = daoSession.getUserDao();
userDao.delete(user);
}
8.查询数据库
/**
* 查询用户列表
*/
public List queryUserList() {
DaoMaster daoMaster = new DaoMaster(getReadableDatabase());
DaoSession daoSession = daoMaster.newSession();
UserDao userDao = daoSession.getUserDao();
QueryBuilder qb = userDao.queryBuilder();
List list = qb.list();
return list;
}

/**
 * 查询用户列表
 */
public List<User> queryUserList(int age) {
    DaoMaster daoMaster = new DaoMaster(getReadableDatabase());
    DaoSession daoSession = daoMaster.newSession();
    UserDao userDao = daoSession.getUserDao();
    QueryBuilder<User> qb = userDao.queryBuilder();
    qb.where(UserDao.Properties.Age.gt(age)).orderAsc(UserDao.Properties.Age);
    List<User> list = qb.list();
    return list;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值