Android项目实战(五十一):浅谈GreenDao
比较出名的数据库框架
GreenDao使用步骤:
1、app目录下的build.gradle文件 添加依赖
compile 'org.greenrobot:greendao:3.2.0'
顶部添加插件
apply plugin: 'org.greenrobot.greendao'
2、根目录下的build.gradle文件 配置
  dependencies {
        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'
    }
3、app目录下的build.gradle文件 对generator生成文件配置
 greendao {
        schemaVersion //数据库版本号
        daoPackage 'com.xxx.xxx.base.database'//设置DaoMaster、DaoSession、Dao包名
        targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
        //targetGenDirTest:设置生成单元测试目录
        //generateTests:设置自动生成单元测试用例
    }
dependencies{}
4、创建实体类,生成dao文件
@Entity
public class HX_User {
@Id
private String id;
private String userName;
private String avatar;
}
5、make project

6、检测
HX_User类会变成下面情况,注意 属性值的get和set方法不要自己写,是make project之后自动生成的
@Entity
public class HX_User {
@Id
private String id;
private String userName;
private String avatar;
@Generated(hash = )
public HX_User(String id, String userName, String avatar) {
this.id = id;
this.userName = userName;
this.avatar = avatar;
}
@Generated(hash = )
public HX_User() {
}
public String getId() {
return this.id;
}
public void setId(String id) {
this.id = id;
}
public String getUserName() {
return this.userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getAvatar() {
return this.avatar;
}
public void setAvatar(String avatar) {
this.avatar = avatar;
}
}
7、使用:初始化
在自己的Application类中进行初始化
public class XApplication extends Application{
    private static DaoSession mDaoSession;
    @Override
    public void onCreate() {
        super.onCreate();
        // 初始化数据库
        setupDataBase(this);
    }
    private void setupDataBase(Context context){
        DaoMaster.DevOpenHelper openHelper = new DaoMaster.DevOpenHelper(context,"HX_DB");
        Database db = openHelper.getWritableDb();
        DaoMaster daoMaster = new DaoMaster(db);
        mDaoSession = daoMaster.newSession();
    }
    public static DaoSession getDaoSession(){
        return mDaoSession;
    }
}
8、使用:增删改查
XApplication.getDaoSession().getHX_UserDao().insertOrReplace(currentUser);
XApplication.getDaoSession().getHX_UserDao().delete(currentUser);
XApplication.getDaoSession().getHX_UserDao().update(currentUser);
List<HX_User> list = XApplication.getDaoSession().getHX_UserDao().queryBuilder().where(HX_UserDao.Properties.Id.eq(uid)).list();
Android项目实战(五十一):浅谈GreenDao的更多相关文章
- Android项目实战(十一):moveTaskToBack(boolean ) 方法的使用
		当你开发的程序被按后退键退出的时候, 你肯定不想让他就这么被finish()吧,那么就想把程序退置到后台就可. (类似于PC端,你关闭一个浏览器和你最小化一个浏览器的区别) 参看方法:public b ... 
- Android项目实战(二十九):酒店预定日期选择
		先看需求效果图: 几个需求点: 1.显示当月以及下个月的日历 (可自行拓展更多月份) 2.首次点击选择"开始日期",再次点击选择"结束日期" (1).如果&qu ... 
- (转载)Android项目实战(二十八):Zxing二维码实现及优化
		Android项目实战(二十八):Zxing二维码实现及优化 前言: 多年之前接触过zxing实现二维码,没想到今日项目中再此使用竟然使用的还是zxing,百度之,竟是如此牛的玩意. 当然,项目中 ... 
- Android项目实战(三十二):圆角对话框Dialog
		前言: 项目中多处用到对话框,用系统对话框太难看,就自己写一个自定义对话框. 对话框包括:1.圆角 2.app图标 , 提示文本,关闭对话框的"确定"按钮 难点:1.对话框边框圆角 ... 
- (转载)Android项目实战(三十二):圆角对话框Dialog
		Android项目实战(三十二):圆角对话框Dialog 前言: 项目中多处用到对话框,用系统对话框太难看,就自己写一个自定义对话框. 对话框包括:1.圆角 2.app图标 , 提示文本,关闭对话 ... 
- Android应用安全开发之浅谈加密算法的坑
		<Android应用安全开发之浅谈加密算法的坑> 作者:阿里移动安全@伊樵,@舟海 阿里聚安全,一站式解决应用开发安全问题 Android开发中,难免会遇到需要加解密一些数据内 ... 
- Android项目实战--手机卫士开发系列教程
		<ignore_js_op> banner131010.jpg (71.4 KB, 下载次数: 0) 下载附件 保存到相册 2 分钟前 上传 Android项目实战--手机卫士01- ... 
- Android项目实战(四十九):Andoird 7.0+相机适配
		解决方案类似: Android项目实战(四十):Andoird 7.0+ 安装APK适配 解决方法: 一.在AndroidManifest.xml 文件中添加 四大组件之一的 <provider ... 
- (转载)Android项目实战(二十七):数据交互(信息编辑)填写总结
		Android项目实战(二十七):数据交互(信息编辑)填写总结 前言: 项目中必定用到的数据填写需求.比如修改用户名的文字编辑对话框,修改生日的日期选择对话框等等.现总结一下,方便以后使用. 注: ... 
- (转载)Android项目实战(十七):QQ空间实现(二)—— 分享功能 / 弹出PopupWindow
		Android项目实战(十七):QQ空间实现(二)—— 分享功能 / 弹出PopupWindow 这是一张QQ空间说说详情的截图. 分析: 1.点击右上角三个点的图标,在界面底部弹出一个区域,这个 ... 
随机推荐
- Nuxt 2 即将来临
			原文出处: 
- LSTMs和递归神经网络的初学者指南
			本文是读A Beginner's Guide to LSTMs and Recurrent Neural Networks的个人摘要. 递归网络 Recurrent nets 递归网络是一种人工神经网 ... 
- Java核心技术及面试指南 IO部分的面试题归纳以及答案
			4.6.1 java中有几种类型的流? Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStr ... 
- python multiprocessing深度解析
			在写python多线程代码的时候,会用到multiprocessing这个包,这篇文章总结了一些这个包在多进程管理方面的一些原理和代码分析. 1. 问题一:是否需要显式调用pool的close和joi ... 
- 《JavaScript总结》js模块化
			模块化开发,可以让代码易于扩展.便于日后维护. ES6中的模块化 我们先了解一下 export(导出) 和 import(导入) 这两个关键字. 新建一个文件a.js 并且导出变量test expor ... 
- 自动化测试 | UI Automator 进阶指南
			UI Automator 相关介绍: 跨应用的用户界面自动化测试 包含在 AndroidX Test(https://developer.android.com/training/testing) 中 ... 
- 【原创】驱动枚举之EnumServicesStatusEx
			BOOL WINAPI EnumServicesStatusEx( _In_ SC_HANDLE hSCManager, _In_ SC_ENUM_TYPE InfoLevel, _In_ DWORD ... 
- Canal 源码走读
			前言 canal 是什么? 引用一下官方回答: 阿里巴巴mysql数据库binlog的增量订阅&消费组件 canal 能做什么? 基于日志增量订阅&消费支持的业务: 数据库镜像 数据库 ... 
- iOS高效裁剪图片圆角算法
			项目有个需求:裁剪图片,针对头像,下面是要求: 大家可以看到这张图片的圆角已经去除,下面说说我在项目利用了两种方式实现此裁剪以及查看技术文档发现更高效裁剪方式,下面一一讲解:看下来大约需要15-20分 ... 
- Notepad++ 配置 Sql PoorMan 插件
			作用:用来格式化 sql 命令语句 配置方法: Notepad++ 与 PoorMan 插件要版本一致 64对64 32对32 Notepad++ 在 D:\Notepad++\plugins 目录 ... 
