##greendao ##1.greendao是什么 java
##2.性能 数据库
不只如此,其优势还包括有如下几点 存取速度快 支持数据库加密 轻量级 激活实体 支持缓存 代码自动生成
##3.使用 ###配置 1.在Project工程build.gradle里加入以下配置缓存
classpath 'org.greenrobot:greendao-gradle-plugin:3.1.0' allprojects { repositories { jcenter() } } 2.在Module里build.gradle里加入以下配置 apply plugin: 'org.greenrobot.greendao' compile 'org.greenrobot:greendao:3.1.0' greendao { schemaVersion 1 }
###建立User对象app
@Entity:告诉GreenDao该对象为实体,只有被@Entity注释的Bean类才能被dao类操做 @Id:对象的Id,使用Long类型做为EntityId,不然会报错。(autoincrement = true)表示主键会自增,若是false就会使用旧值 @Property:能够自定义字段名,注意外键不能使用该属性 @NotNull:属性不能为空 @Transient:使用该注释的属性不会被存入数据库的字段中 @Unique:该属性值必须在数据库中是惟一值
###编译项目 1 . 生成DaoMaster.java GreenDao的顶级对象,做为数据库对象、用于建立表和删除表 DevOpenHelper:建立SQLite数据库的SQLiteOpenHelper的具体实现 2 . 生成DaoSession.java 管理全部的Dao对象,Dao对象中存在着增删改查等API 3 . 生成UserDao.java 实体类生成了get和set方法 ###调用方法 User mUser; List<User> mList; 1. 增 增长单个数据 getUserDao().insert(mUser); getUserDao().insertOrReplace(mUser);性能
增长多个数据 getUserDao().insertInTx(mList); getUserDao().insertOrReplaceInTx(mList); 2. 删 删除单个数据 getUserDao().delete(mUser); 删除多个数据 getUserDao().deleteInTx(mList); 删除数据ByKey getTABUserDao().deleteByKey(id); 3. 改 修改单个数据 getUserDao().update(mUser); 修改多个数据 getUserDao().updateInTx(mList); 4. 查 查询所有 getUserDao().loadAll(); getUserDao().queryBuilder().list(); 查询附加单个条件 .where() .whereOr() 查询附加多个条件 .where(, , ,) .whereOr(, , ,) 查询附加排序 .orderDesc() .orderAsc() 查询限制当页个数 .limit() 查询总个数 .count()