美文网首页
GreenDao简单使用

GreenDao简单使用

作者: 一只遨游在编程中的小菜鸟 | 来源:发表于2017-09-04 22:12 被阅读0次

    讲解使用之前先说说GreenDao
    GreenDao相较于同类型的库,性能是最好的
    GreenDao可以直接将拿到的数据转变成我们想要使用的对象
    GreenDao库大小很小,很精简,优化也很好

    一:环境配置

    1、在project的build.gradle中配置如下代码:

     dependencies {
            ...
            classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'
        }
    

    2、在module的build.gradle中配置:

    apply plugin: 'org.greenrobot.greendao'
    android{
            ...
            greendao {
            schemaVersion 1 //数据库版本号
            daoPackage 'com.tt.green.dao' //自动生成的工具类的包名
            targetGenDir 'src/main/java' //生成类的路径
        }
    }
    
    dependencies {
          compile 'org.greenrobot:greendao:3.2.0'
    }
    
    

    二:使用:

    1、定义实体类

    定义实体类之前介绍一些GreenDao中常用的注解的意思

    @Entity -- 实体类,类名上打这个标记就代表这个类是GreenDao所能识别的实体类后面可以跟参数,常用的就是“nameInDb”意思就是指定这个类所对应的表名字,如果不写就默认类名作为表名
    @Id -- Id 顾名思义 可以通过autoincrement = true来设置其为自增长主键(这里有个坑,如果想要是自增长主键,必须使用Long 不能是 long)
    @Property -- 表中的字段 通过nameInDb来指定字段名,否则以变量名命名
    @NotNull -- 该数据不能为空
    @Generated -- 构造
    @Transient -- 添加次标记之后不会生成数据库表的列
    

    接下来定义实体类User

    @Entity(nameInDb = "tablename")
    public class User {
        @Id(autoincrement = true)
        private Long id;
        @Property(nameInDb = "username")
        private String name;
        @Property(nameInDb = "age")
        private int age;
        @Generated
        public User() {
        }
        @Generated
        public User(Long id, String name, int age) {
            this.id = id;
            this.name = name;
            this.age = age;
        }
    }
    

    实体类定义好了,点击Studio的Make Project会帮我们生成GreenDao的相关类

    make project.png

    生成的文件:

    生成文件.png

    2、GreenDao初始化

    DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "stu", null);
            SQLiteDatabase db = helper.getWritableDatabase();
            DaoMaster daoMaster = new DaoMaster(db);
            DaoSession daoSession = daoMaster.newSession();
            mUserDao = daoSession.getUserDao();
    

    初始化好了,之后就使用mUserDao对象来操作数据库,这行代码最好可以在Application中初始化。

    3、使用UserDao操作数据库

    mUserDao.insert(new User(null,"张三",28))
    

             //删除单个
            mUserDao.delete(new User(null,"张三",28));
            //根据id删除
            mUserDao.deleteByKey(20L);
            //删除全部
            mUserDao.deleteAll();
    

    mUserDao.update(new User(null,"张三",28));
    

    //查询表中name = "user" 的集合
     List<User> list=mUserDao.queryBuilder().where(UserDao.Properties.Name.eq("user")).build().list();
    //查询表中name = "user" 的唯一数据
    User user = mUserDao.queryBuilder().where(UserDao.Properties.Name.eq("user")).build().unique();
    

    这篇博客仅仅是介绍一些简单的操作,GreenDao还可以做很多其他的操作,具体的慢慢发现把。

    相关文章

      网友评论

          本文标题:GreenDao简单使用

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