GreenDao的简单使用
2019-06-12 本文已影响8人
12313凯皇
一、引用
- 在根目录的
build.gradle
中添加配置:
buildscript {
repositories {
jcenter()
mavenCentral() // add repository
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.1'
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
}
}
- 在
app
的build.gradle
中添加配置:
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao' // apply plugin
greendao {
schemaVersion 1 //数据库版本
targetGenDir 'src/main/java' //指定生成代码的目录
daoPackage 'com.yu.hu.cardtestproject.entity'//设置DaoMaster、DaoSession、Dao包名
}
dependencies {
implementation 'org.greenrobot:greendao:3.2.2' // add library
}
二、使用
使用之前需要在Gradle
中build
一下生成DaoMaster
和DaoSession
由于刚接触不久,先记录一下用到的注解吧:
@Entity
//标注实体类 nameInDb 设置表名
@Entity(nameInDb = "tb_question")
-
@Id
主键 -
@Transient
不当做数据表的一列 -
@Convert
将数据进行转换存入数据表列
//通过StringConverter来进行转换 存入数据表的数据类型为String
@Convert(converter = StringConverter.class, columnType = String.class)
public List<String> options = new ArrayList<>();
//StringConverter.java
public class StringConverter implements PropertyConverter<List<String>, String> {
@Override
public List<String> convertToEntityProperty(String databaseValue) {
if (databaseValue == null) {
return null;
} else {
return Arrays.asList(databaseValue.split(","));
}
}
@Override
public String convertToDatabaseValue(List<String> entityProperty) {
if (entityProperty == null) {
return null;
} else {
StringBuilder stringBuilder = new StringBuilder();
for (String s : entityProperty) {
stringBuilder.append(s).append(",");
}
return stringBuilder.toString();
}
}
}