博客: 安卓之家
掘金: jp1017
微博: 追风917
CSDN: 蒋朋的家
简书: 追风917
配置
喜讯:现在greenDAO升级到了3.0版本,不需要java项目了
强烈建议升级到3.0版本,该版本采用注解的方式通过编译生成Java数据对象和DAO对象,配置更简单
之前2.0版本的配置也写过,参考这里:Android SQLite ORM框架greenDAO在Android Studio中的配置与使用
1 添加依赖
项目的gradle脚本:
1 | buildscript { |
module的gradle:
1 | apply plugin: 'com.android.application' |
可以看到,3.0多了个greendao插件,直接在这里配置实体及DAO生成目录,我的配置是:
1 | greendao { |
这三个字段的意思是:
schemaVersion: 数据库schema版本,可在这里升级数据库版本
daoPackage:设置DaoMaster、DaoSession、Dao包名
targetGenDir:设置DaoMaster、DaoSession、Dao目录
配置好后,同步下,然后编译,就会生成 Dao。
2 添加实体类
我这里的是Student实体类,和普通的bean有个区别,添加 @Entity
注解
1 | @Entity |
注意到,变量 id
添加了 @Id 注解,这个就是主键了
注意: id 的类型是 Long
, 不要写成 long
,否则会出现主键不能相同等异常
生成DAO
上面配置好后,同步,编译,即可自动生成DAO, 并自动补全实体类 Student 的getter setter 等方法。
增删改查
上面的操作就完成了数据库的创建,下面开始对数据库操作,常用的增删改查。
这里对基本操作封装下,参考这里:Android ORM系列之GreenDao最佳实践
1 编写一个核心辅助类DbCore, 用于获取DaoMaster和DaoSession
1 | public static DaoMaster getDaoMaster() { |
这里需要注意的是 getDaoMaster 时的 helper 不可用 DaoMaster.DevOpenHelper,我们需要自定义一个:
因为该类这样提示我们:
/* WARNING: Drops all table on Upgrade! Use only during development. /
public static class DevOpenHelper extends OpenHelper
也就是开发中使用的助手,自定义也很简单:
1 | public class MyOpenHelper extends DaoMaster.OpenHelper { |
2 基础的泛型 BaseDbHelper, 封装基本增删改查方法,具体看代码吧
3 实现类,有几个实体类就有几个实现类,这里是 StudentHelper, 仅仅一个构造方法即可
4 一个工具类 DbUtils 获得 Helper
5 在 application 里初始化
1 | public class DaoApplication extends Application { |
6 测试
方法就很简单了,获取 helper, 然后 add
remove
update
query
1 | StudentHelper mHelper = DbUtil.getDriverHelper(); |
运行程序,添加几个数据,我们看下界面及数据库内容:
升级
请参考下一篇文章:安卓数据库 greenDAO3 使用之二数据库升级
代码已上传至 GitHub:GreenDAO3_Demo
最后,非常感谢您的阅读,有任何疑问,可以后面评论,谢谢!
神奇的安卓开发网站:http://androidcat.com/
安卓开源库收集整理:https://github.com/XXApple/AndroidLibs
分享是一种美德,更是一种生活方式!!
也许你会说我是一个梦想者,但我不是唯一的一个。
悦分享,越快乐^_^
欢迎交流,转载请注明出处,谢谢!