greendao的使用

来源:互联网 发布:windows密码 编辑:程序博客网 时间:2024/05/22 00:28
1.配置gradle:


    apply plugin: 'org.greenrobot.greendao'  //添加这个插件,实现不用手动生成bean


    compile 'org.greenrobot:greendao:3.0.1'


    //执行build -- makeproject后自动生成bean dao到对应的位置
    greendao{
        //数据库版本号,更新时要修改+1
        schemaVersion 2
        //生成的包名
        daoPackage "com.motian.greendaosrc.db.dao"
        //生成到哪个路径下的包名
        targetGenDir "src/main/java"
    }


2.module gradle


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


3.编写实体bean


     参考:http://greenrobot.org/greendao/documentation/updating-to-greendao-3-and-annotations/#Basic_propertyannotationsId_Property_etc


     @Entity(
             //如果有多个数据库,指定库的名字
             //schema = "myschema",
             //库是活跃的状态,活动实体有更新、删除和刷新方法。
             //active = true,
             //指定表名字
             nameInDb = "user_db",
             //定义在这里跨越多个列的索引
             indexes = {@Index(value = "name DESC", unique = true)}
             //是否创建在数据库,默认是true
             //createInDb = false
     )
     public class User {
         //long型属性值作为实体标识,在数据库术语中,它是主键,参数递增是一个标志,使ID值不断增加的(不重复使用旧的值)
         @Id(autoincrement = true)
         private Long id;


         // 自定义字段
         @Property(nameInDb = "user_id")
         @Index(unique = true) // 建立索引
         @NotNull
         private String userId;


         @Unique // 唯一
         @NotNull
         private String identity;


         //属性可以让您定义一个非默认的列名称,该列名称映射到数据库
         @Property(nameInDb = "user_name")
         //唯一索引,使得所有name都是唯一
         @Index(unique = true)
         private String name;


         @NotNull
         private int repos;


         private String loaction;


         //数据库三范式一对一,指定一个实体bean(Customer)
         //@ToOne(joinProperty = "customerId")
         //private Customer customer;
         //数据库三范式一对多,指定一个实体List(List)
         //@ToMany(referencedJoinProperty = "ownerId")
         //private List ownedSites;


         //短暂的标记属性将被排除在持久性之外。使用这些临时状态,等等。另外,你也可以用java关键字
         @Transient
         private int tempUsageCount;


     }


4.执行build -- make project 实体bean会对应的生成get set方法


5.升级的使用:


  修改gradle schemaVersion 2 +1


  @Override
  public void onUpgrade(Database db, int oldVersion, int newVersion) {
              MigrationHelper.migrate(db, UserDao.class);
  }


  实体bean中添加新的字段,执行第4步,即可使用
0 0
原创粉丝点击