作者: 烟柳煌都 | 来源:发表于2017-01-08 20:10 被阅读0次

    配置

    前阵子操作数据库使用了GreenDao,写这篇的时候也拖了好一段时间,迟迟没有分享出来,下面就自带板凳开始GreenDao的配置和基本使用

    • 在as中导入相关的包

    • 在app的gradle文件中配置

    apply plugin: 'org.greenrobot.greendao'
    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'
        }
    }
    greendao {
          schemaVersion 1
          daoPackage 'com.huang.greendaodemo.gen'
          targetGenDir 'src/main/java'
    }
    

    schemaVersion :数据库schema版本号,迁移数据、升级数据库等操作会用到 daoPackage:由GreenDao自动生成代码所在的包名
    targetGenDir:设置自动生成代码的目录

    • 在项目中定义一个实体类


      @Entity :定义实体类,默认类名即为表名(这里为user)
      @Id :标明主键,括号里可以指定是否自增(注意:要注解为@Id的字段最 好用Long型,笔者当初使用long出现问题,排查将近半盏茶时间)
      @NotNull : 不为null
      @Unique :唯一约束
      @ToMany : 一对多
      @OrderBy : 排序
      @ToOne : 一对一
      @Transient :不会创建到数据库表里

    • MakeProject


    编译项目,User实体类会自动编译,之后会在gen目录下生成这三个文件

    使用

    • GreenDao使用,首先是实例化GreenDao所需要的几个对象,相关代码如下:
    public class BaseApplication extends Application{
        private SQLiteDatabase db;
        private DaoMaster mDaoMaster;
        private DaoSession mDaoSession;
        public static BaseApplication instances;
    
        @Override
        public void onCreate() {
            super.onCreate();
            instances = this;
            init();
        }
    
         public static BaseApplication getInstances() {
            return instances;
        }
    
        public void init() {
            //数据库的配置
            DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(instances, "note_db", null);
            db = devOpenHelper.getWritableDatabase();
            mDaoMaster = new DaoMaster(db);
            mDaoSession = mDaoMaster.newSession();
        }
        public DaoSession getDaoSession() {
            return mDaoSession;
        }
    
        public SQLiteDatabase getDb() {
            return db;
        }
    }
    

    这里别忘了添加到AndroidManifest.xml里面

    获取UserDao对象

    private DaoSession mDaoSession;
    private UserDao mUserDao;
    mDaoSession = BaseApplication.getInstances().getDaoSession();
    mUserDao = mDaoSession.getUserDao();
    
    1、增
    User mUser = new User();
    mUser.setName("hello");
    mUser.setText("world");
    mUserDao.insert(mUser);
    
    2、删
    mUserDao.deleteByKey(id);
    
    3、改
    //注意是参数Long
    User mUser = new User(1l,"hello","world");
    mUserDao.update(mUser);
    
    4、查
    List<User> users = mUserDao.loadAll();
    

    项目demo地址:https://github.com/zlhuang/greenDaoDemo
    最后,希望这篇文章可以帮助到您,本文有任何问题欢迎指正。

    相关文章

      网友评论

        本文标题:

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