GreenDao官网
GitHub
GitHub -> https://github.com/greenrobot/greenDAO
性能对比
介绍
- GreenDao采用的是用java代码直接生成Bean(实体)和Dao(Data Access Object数据访问对象)的方式,都不用自己写实体了,也是一大好处,不过这也造成了理解上的难度,我刚开始用的时候就有点蒙。
- 首先创建一个Java的Library,一定是Java的,命名为daogenerator(可以起别的名字,为了后面叙述方便)。在app下面和’java’目录同级创建’java-gen’目录,将会用来放置生成的Bean和Dao。Dao也就是数据访问对象,实体类只能描述一个对象的属性和行为,想与数据库交流就需要Dao对象,它包含对应的数据库字段和增删改查方法。
生成文件
- 在daogenerator库里创建’ExampleDaoGenerator.java’文件,包含main方法,构建schema,生成目录和文件
1 | public static void main(String[] args) throws Exception{ |
如何生成实体
1 | private static void addNote(Schema schema) { |
自定义生成的代码
- 当重新执行java代码时会覆盖生成新的文件,如果你修改了生成的类,就会被重新覆盖,解决这个问题,设置
note.setHasKeepSections(true);
会在文件中生成一些注释,在注释中间的代码将不会被覆盖,也可以设置继承,实现等。。。这样就不需要每次都修改代码了
1 | // KEEP INCLUDES - put your custom includes here |
1 | //设置支持自定义代码(或schema.enableKeepSectionsByDefault();) |
初始化数据库
1 | private DaoSession mDaoSession; |
获取Dao
1 | public WholeAlbumItemDao getWholeAlbumItemDao() { |
增
1 | //这两个方法提供简单的插入和不存在则插入存在则更新的操作 |
删
1 | //与insert方法大同小异 |
改
1 | DaoHelper.get().getAlbumDetailDao().update(); |
查
- 关于Query的操作相对复杂, 下面只是比较基本的,更多的使用方法可以参照Query文档
1 | // 获取querybuilder |