一.ORM原理介绍
ORM实际上是,对象关系模型的程序方法,用于实现面向对象编程语言不通类型系统的数据之间的转换,也就是说,我们不需要要在java层关系关系数据库的具体实现,也不需要在关系数据库层,关心java对象的使用,从而提高编程的效率。
二.greendao3.0的使用
1.greendao3.0的引入工程,在project工程的build.gradle配置文件中添加greendao插件,这个插件主要是为了动态的生产数据库代码,apply plugin: 'org.greenrobot.greendao',这个是添加插件,这些信息都是在工程的gradle配置文件中添加,在我们新建了,数据库bean的java文件后,重新编译工程,就会在工程中自动的生成相应的数据库操作类,以下是greendao的配置:
greendao {
schemaVersion 12
daoPackage 'com.common.greendao'
targetGenDir 'src/main/java'
}
apply plugin: 'org.greenrobot.greendao'
greendao { schemaVersion 14 daoPackage 'com.common.greendao' targetGenDir 'src/main/java' }
整个工程配置中添加:
classpath 'com.android.tools.build:gradle:2.1.2' classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0'
其中,schemaVersion 代表数据库库版本,当升级的时候需要修改这个参数,在gradle配置中,可以写多个greendao{}的配置,但是,都是以最后一个为准,
2.数据库bean规则:(1).所有数据库bean必须用@Entity(org.greenrobot.greendao.annotation.Entity)修饰,编译过程中,通过这个标签识别那些类是需要转换为数据库表的,还有其他一些注解可以使用:
(2)@Entity类型,用于标示这是一个需要Greendao帮我们生成代码的bean;
@Entity(
schema = "myschema",
active = true,
nameInDb = "AWESOME_USERS",
indexes = {
@Index(value = "name DESC", unique = true)
},
createInDb = false
)
(3)@Id 标明主键,可以指定是不是自增; boolean autoincrement() default false,是否自动增长;
(4)@Property 用于设置属性在数据库中的列名(不设置默认的话保持一致)nameInDb属性,设置该属性在数据库中的名称;
(5)@NotNull 非空;
(6)@Transient 标识这个字段是自定义的不会创建到数据库