精华内容
参与话题
问答
  • GreenDao

    2020-11-04 21:31:36
    在版本迭代时,我们经常需要对数据库进行升级,而GreenDAO默认的DaoMaster.DevOpenHelper在进行数据升级时,会把旧表删除,然后创建新表,并没有迁移旧数据到新表中,从而造成数据丢失。  这在实际中是不可取的...

    https://blog.csdn.net/qq_35956194/article/details/79167897

    在版本迭代时,我们经常需要对数据库进行升级,而GreenDAO默认的DaoMaster.DevOpenHelper在进行数据升级时,会把旧表删除,然后创建新表,并没有迁移旧数据到新表中,从而造成数据丢失。
    这在实际中是不可取的,因此我们需要作出调整。下面介绍数据库升级的步骤与要点

    GreenDAO数据库升级,不删除表,不copy表方案
    https://blog.csdn.net/qq_29924041/article/details/86584702

    数据库框架对比?
    数据库的优化
    数据库数据迁移问题
    数据库索引的数据结构
    平衡二叉树

    展开全文
  • greendao

    2020-03-29 03:08:31
  • Greendao

    2019-04-15 08:21:16
    http://note.youdao.com/noteshare?id=461941abc1b9c9c9aacef3c467a3f6b7
    展开全文
  • greenDao

    2019-03-14 20:14:48
    classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' //app gradle apply plugin: 'org.greenrobot.greendao' greendao { schemaVersion 1 //数据库版本号 daoPackage '包名.database' //设置时生成代...
    依赖
    //根gradle
    classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
    //app gradle
    apply plugin: 'org.greenrobot.greendao'
    greendao {
        schemaVersion 1 //数据库版本号
        daoPackage '包名.database' //设置时生成代码的目录
        targetGenDir 'src/main/java' //设置DaoMaster、DaoSession、Dao目录
    }
    dependencies {
       compile 'org.greenrobot:greendao:3.2.2'
    }

    @Entity:用于标识当前实体需要GreenDao生成代码。

    schema:项目中存在多个Schema时,表明当前实体属于哪个Schema。

    active:标记实体是否处于活动状态,活动状态才支持更新删除刷新等操作。

    nameInDb:存储在数据库中的表名,不写默认与类名一致。

    createInDb:标记创建数据库表,若有多个实体关联此表可设为false避免重复创建,默认为true。

     

     

    属性注解

    @Id :主键Long型,可以通过@Id(autoincrement = true)设置自增长。

    @Property:设置一个非默认关系映射所对应的列名,默认是的使用字段名例如@Property (nameInDb="name")。

    @NotNul:设置数据库表当前列不能为空。

    @OrderBy:指定排序。

    @Transient:添加此标记之后不会生成数据库表的列。

    @Generated:为build之后GreenDao自动生成的注解,为防止重复,每一块代码生成后会加个hash作为标记。

    
        private DaoSession daoSession;
        private PersonDao personDao;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main2);
            daoSession = DaoManager.getDefault(this).daoSession();
            personDao = daoSession.getPersonDao();
              //添加
            for (int i = 0; i < 10; i++) {
                personDao.insert(new Person(null, "wang" + i, i));
            }
        }
    
        public void onClick(View view) {
    
                //查询
            List<Person> list = personDao.queryBuilder().build()
                    .list();
    
            fore(list);
            //修改
            Person unique = personDao.queryBuilder()
                    .where(PersonDao.Properties.Id.eq(2))
                    .build().unique();
            unique.setName("tao");
            personDao.update(unique);
    
            //条件查询
            List<Person> list1 = personDao.queryBuilder()
                    .where(PersonDao.Properties.Age.gt(10),PersonDao.Properties.Id.lt(18))
                    .build()
                    .list();
            fore(list1);
            //删除
            personDao.deleteByKey(unique.getId());
    
        }
            
        public void fore(List<Person> list) {
            for (Person person : list) {
                Log.e("tag",person.toString());
            }
    
        }
    

     

    DaoManager
    package com.example.zsd.myapplications0314.utils;
    
    import android.content.Context;
    
    import com.example.zsd.myapplications0314.greendao.DaoMaster;
    import com.example.zsd.myapplications0314.greendao.DaoSession;
    
    public class DaoManager {
    
        private final DaoSession daoSession;
        private static DaoManager daoManager;
        private DaoManager (Context context){
            daoSession = DaoMaster.newDevSession(context, "my.db");
        }
        public static DaoManager getIntance(Context context){
            if (daoManager == null) {
                synchronized (DaoManager.class){
                    daoManager = new DaoManager(context);
                }
            }else {
                return daoManager;
            }
            return daoManager;
        }
    
        public DaoSession getDaoSession() {
            return daoSession;
        }
    }
    

     

    展开全文
  • GReendao

    2018-04-07 17:46:09
    package ... import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View;...import android.widget.A...

空空如也

1 2 3 4 5 ... 20
收藏数 5,758
精华内容 2,303
关键字:

greendao