美文网首页
android 数据库GreenDao简单使用

android 数据库GreenDao简单使用

作者: NullPoint3Exce | 来源:发表于2019-01-21 16:51 被阅读0次

    GreenDao是映射java数据对象到Sqlite数据库表中的一个第三方框架。
    因为它封装了对数据库表的操作,框架本身小,使用简单,使用我们经常会在项目里面去用到它。
    1.配置依赖

        implementation 'org.greenrobot:greendao:3.2.0'
        implementation 'org.greenrobot:greendao-generator:3.2.0'
    
       project的build.gradle 的buildscript-->dependencies添加
       classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
    
       //方便查看数据库内容,添加的查看工具
       implementation 'com.facebook.stetho:stetho:1.5.0'
    

    2.编译一下,会自动生成三个文件 BannerItemDao、DaoMaster、DaoSession
    这三个存放目录配置在module的build.gradle文件里的android下。eg:

    apply plugin: 'org.greenrobot.greendao' // apply plugin
    
    android {
    ...忽略
    greendao {
           schemaVersion 1  // 数据库的版本号
           daoPackage 'com.test.dao'  // 包名
           targetGenDir 'src/main/java' // 存放的目录地址
       }
    }
    

    3.创建bean实体对象,映射数据库的表

    @Entity
    public class BannerItem {
    
        private String desc;
        @Property(nameInDb = "bid")
        @Id(autoincrement = true)
        private Long bid;
        private long itmeId;
        private String imagePath;
        private String title;
        private String url;
    
    ....忽略
    }
    

    4.然后在application里初始化

      public void initDbaseDao(Context context) {
    
            DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(this, "xx.db");
    
            DaoMaster daoMaster = new DaoMaster(devOpenHelper.getWritableDb());
            daoSession = daoMaster.newSession();
    
        }
    
        public static DaoSession getDaoSession() {
            return daoSession;
        }
    

    5.开始使用

    //插入数据
        public void insertData() {
    
            Random random = new Random();//指定种子数字
            int index = random.nextInt(999);
    
            Log.d(TAG, "insertData: index=" + index);
    
            DaoSession daoSession = JiyunApplication.getDaoSession();
            BannerItem bannerItem = new BannerItem();
            bannerItem.setItmeId((int) index);
            bannerItem.setImagePath(img_url);
            bannerItem.setDesc("this is description");
            bannerItem.setUrl("this is url  ");
            bannerItem.setTitle("hehe");
            daoSession.getBannerItemDao().insert(bannerItem);
    
     //daoSession.getBannerItemDao().delete(bannerItem); 删除某项数据
      //daoSession.getBannerItemDao().update(bannerItem); 更新某项数据
      // List<BannerItem> bannerItemList = daoSession.getBannerItemDao().loadAll(); 获取所有数据
    
      // 根据条件获取数据
        // List<Person> personList =  daoSession.queryBuilder(Person.class)
            //          .where(PersonDao.Properties.Name.eq(name))// equals
                //      .build()
                    //  .list();
     // 根据条件获取一条数据
      //   Person  person =  daoSession.queryBuilder(Person.class)
       //                .where(PersonDao.Properties.Name.eq(name))// equals
       //                .build()
         //              .unique();
        }
    

    相关文章

      网友评论

          本文标题:android 数据库GreenDao简单使用

          本文链接:https://www.haomeiwen.com/subject/gxocjqtx.html