在主项目的grade中配置
apply plugin: 'org.greenrobot.greendao'
main{
java.srcDirs = ['src/main/java','src/main/jave-gen']
}
greendao{
schemaVersion 1
daoPackage'com.example.greendao'
targetGenDir'src/main/java'
}
compile 'org.greenrobot:greendao:3.1.1'
compile 'org.greenrobot:greendao-generator:3.1.0'
创建一个实体类
@Entity
public class User {
@Id
private Long id;
private String name;
@Transient
private int tempUsageCount; // not persisted
}
数据库里面的注释作用
@nameInDb 在数据库中的名字,如不写则为实体中类名
@indexes 索引
@createInDb 是否创建表,默认为true,false时不创建
@schema 指定架构名称为实体
@active 无论是更新生成都刷新
(二) @Id
(三) @NotNull 不为null
(四) @Unique 唯一约束
(五) @ToMany 一对多
(六) @OrderBy 排序
(七) @ToOne 一对一
(八) @Transient 不存储在数据库中
(九) @generated 由greendao产生的构造函数或方法
这里结束,编译一次,让程序生成DaoMaster , DaoSession, UserDao
创建GreenDaoUtils
DaoMaster.DevOpenHelper mHelper;
private SQLiteDatabase db;
private DaoMaster mDaoMaster;
private DaoSession mDaoSession;
private static GreenDaoUtils greenDaoUtils;
private GreenDaoUtils(){}
public static GreenDaoUtils getSingleTon(){
if (greenDaoUtils==null){
greenDaoUtils=new GreenDaoUtils();
}
return greenDaoUtils;
}
private void initGreenDao(Context context){
mHelper=new DaoMaster.DevOpenHelper(context,"test-db",null);
db=mHelper.getWritableDatabase();
mDaoMaster=new DaoMaster(db);
mDaoSession=mDaoMaster.newSession();
}
public DaoSession getmDaoSession(Context context) {
if (mDaoMaster==null){
initGreenDao(context);
}
return mDaoSession;
}
public SQLiteDatabase getDb(Context context) {
if (db==null){
initGreenDao(context);
}
return db;
}
然后在有需要的地方进行增删改查
UserDao mUserDao = GreenDaoUtils.getSingleTon().getmDaoSession(this).getUserDao();
User user = new User((long)1,"11");
mUserDao.insert(user);
List<User> users = mUserDao.loadAll();
for (User user : users) {
System.out.println(user.getName());
}