greenDao的详细介绍

来源:互联网 发布:网站源码可以导出来吗 编辑:程序博客网 时间:2024/06/07 06:43
在主项目的grade中配置
  1. apply plugin: 'org.greenrobot.greendao'
  2. main{
  3. java.srcDirs = ['src/main/java','src/main/jave-gen']
  4. }
  5. greendao{
  6. schemaVersion 1
  7. daoPackage'com.example.greendao'
  8. targetGenDir'src/main/java'
  9. }
  10. compile 'org.greenrobot:greendao:3.1.1'
  11. compile 'org.greenrobot:greendao-generator:3.1.0'
创建一个实体类
  1. @Entity
  2. public class User {
  3. @Id
  4. private Long id;
  5. private String name;
  6. @Transient
  7. private int tempUsageCount; // not persisted
  8. }

  1. 数据库里面的注释作用
  2. @nameInDb 在数据库中的名字,如不写则为实体中类名
  3. @indexes 索引
  4. @createInDb 是否创建表,默认为true,false时不创建
  5. @schema 指定架构名称为实体
  6. @active 无论是更新生成都刷新
  7. (二) @Id
  8. (三) @NotNull 不为null
  9. (四) @Unique 唯一约束
  10. (五) @ToMany 一对多
  11. (六) @OrderBy 排序
  12. (七) @ToOne 一对一
  13. (八) @Transient 不存储在数据库中
  14. (九) @generated greendao产生的构造函数或方法
这里结束,编译一次,让程序生成DaoMaster ,  DaoSession,  UserDao


创建GreenDaoUtils
  1. DaoMaster.DevOpenHelper mHelper;
  2. private SQLiteDatabase db;
  3. private DaoMaster mDaoMaster;
  4. private DaoSession mDaoSession;
  5. private static GreenDaoUtils greenDaoUtils;
  6. private GreenDaoUtils(){}
  7. public static GreenDaoUtils getSingleTon(){
  8. if (greenDaoUtils==null){
  9. greenDaoUtils=new GreenDaoUtils();
  10. }
  11. return greenDaoUtils;
  12. }
  13. private void initGreenDao(Context context){
  14. mHelper=new DaoMaster.DevOpenHelper(context,"test-db",null);
  15. db=mHelper.getWritableDatabase();
  16. mDaoMaster=new DaoMaster(db);
  17. mDaoSession=mDaoMaster.newSession();
  18. }
  19. public DaoSession getmDaoSession(Context context) {
  20. if (mDaoMaster==null){
  21. initGreenDao(context);
  22. }
  23. return mDaoSession;
  24. }
  25. public SQLiteDatabase getDb(Context context) {
  26. if (db==null){
  27. initGreenDao(context);
  28. }
  29. return db;
  30. }
然后在有需要的地方进行增删改查
 
  1. UserDao mUserDao = GreenDaoUtils.getSingleTon().getmDaoSession(this).getUserDao();
  2. User user = new User((long)1,"11");
  3. mUserDao.insert(user);
  4. List<User> users = mUserDao.loadAll();
  5. for (User user : users) {
  6. System.out.println(user.getName());
  7. }






































0 0
原创粉丝点击