此文章是基于已经成功导入GreenDao了,但是GreenDao存集合类型的数据需要多几步的操作,至于怎么导入,这个自己上网查了,这篇就不赘述了(或者以后可能会补上,等我忘了怎么用把。。。)
第一步,导入Gson第三方。
第二步,新建类InterConverter , StringConverter 类,代码如下
public class InterConverter implements PropertyConverter, String> {
private final Gson mGson;
public InterConverter() {
mGson = new Gson();
}
@Override
public List convertToEntityProperty(String databaseValue) {
Type type = new TypeToken>() {
}.getType();
ArrayList list = mGson.fromJson(databaseValue , type);
return list;
}
@Override
public String convertToDatabaseValue(List entityProperty) {
String dbString = mGson.toJson(entityProperty);
return dbString;
}
}
public class StringConverter implements PropertyConverter , String>{
@Override
public List convertToEntityProperty(String databaseValue) {
if (databaseValue == null) {
return null;
}
else {
List list = Arrays.asList(databaseValue.split(","));
return list;
}
}
@Override
public String convertToDatabaseValue(List entityProperty) {
if(entityProperty==null){
return null;
}
else{
StringBuilder sb= new StringBuilder();
for(String link:entityProperty){
sb.append(link);
sb.append(",");
}
return sb.toString();
}
}
}
with Gradle Files
@Convert 是添加集合需要的
核心代码如下:
@Convert(columnType = String.class, converter = StringConverter.class)
private List nickname;
@Convert(columnType = String.class, converter = InterConverter.class)
private List hahaha;
@Entity
public class OBDL {
@Id
private Long id;
@Property
@NotNull
private String name;
@Convert(columnType = String.class, converter = StringConverter.class)
private List nickname;
@Convert(columnType = String.class, converter = InterConverter.class)
private List hahaha;
@Generated(hash = 1316419519)
public OBDL(Long id, @NotNull String name, List nickname,
List hahaha) {
this.id = id;
this.name = name;
this.nickname = nickname;
this.hahaha = hahaha;
}
@Generated(hash = 1700707547)
public OBDL() {
}
public Long getId() {
return this.id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public List getNickname() {
return this.nickname;
}
public void setNickname(List nickname) {
this.nickname = nickname;
}
public List getHahaha() {
return this.hahaha;
}
public void setHahaha(List hahaha) {
this.hahaha = hahaha;
}
}
具体调用如下:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DBTool.getOutInstance().deleteAll();
List data = new ArrayList<>();
for (int i = 0; i < 10; i++) {
data.add(i);
}
OBDL obdl = new OBDL();
obdl.setName("qwe");
obdl.setHahaha(data);
DBTool.getOutInstance().insertBean(obdl);
for (Integer qwe : DBTool.getOutInstance().getQueryKey("qwe").getHahaha()) {
LogUtil.chunyLog().d(qwe);
}
// List data = new ArrayList<>();
// for (int i = 0; i < 10; i++) {
// data.add(i + "asd");
// }
//
// OBDL obdl = new OBDL();
// obdl.setName("qwe");
// obdl.setNickname(data);
// DBTool.getOutInstance().insertBean(obdl);
//
//
// for (String qwe : DBTool.getOutInstance().getQueryKey("qwe").getNickname()) {
// LogUtil.chunyLog().d(qwe);
// }
}
}
OK 收工
---------------------------------------------------------------------------------------------------------------------------------------------
最后共享一些最近的感悟: 之前一直不觉得 “生活就像巧克力盒....”那句话有什么好的。突然有一天,平淡的生活
起了对我自己的波澜,就好像我一直就在和我自己下一盘棋,突然之间棋盘不见,棋子再也不能放到棋盘上面。。。
有的不是难过,不是生气,只是莫名的无奈。对,无奈,说不出具体为什么无奈,之前自己所做仿佛就是在嘲笑现在的自己。
--------------------------这些是写给我自己的,不是要看到的人明白什么意思的,我只是希望,多年以后我不会把现在的感受给忘了吧。