GreenDao存List案例
Posted 童政通
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GreenDao存List案例相关的知识,希望对你有一定的参考价值。
ImageListDownDBBean是一个我们需要存储的数据Bean对象,里面有自增长的id,itemID,tag,downTag,模糊图集合mDimImageList,原图集合mReallyImageList,在此,我们用mDimImageList,来做案例,原图同理可得!
1.这个是GreenDao的Bean对象(只截取了相对应的字段,其他可以通过在Android Studio中使用Build> Make Project,重写build项目会生成相对于的Dao对象)
@Entity
public class ImageListDownDBBean
@Id(autoincrement = true)
private Long id;
@Unique
private String itemID;
private String tag; //这个是查询是否存在的条件
private String downTag; //默认0没有点击下载离线模式下不加载,点击了下载设置更新为1,离线模式显示
@Convert(columnType = String.class, converter = DimConverter.class)
private List<DimImageBean> mDimImageList;
@Convert(columnType = String.class, converter = ReallyConverter.class)
private List<ReallyImageBean> mReallyImageList;
在此我们存储mDimImageList,和mReallyImageList,两个List,这里用mDimImageList来做案例
2.先写一个模糊图数据Bean
/**
* LoveLin
* <p>
* Describe 模糊图
*/
public class DimImageBean
private String dimFilePath;
public String getDimFilePath()
return dimFilePath;
public void setDimFilePath(String dimFilePath)
this.dimFilePath = dimFilePath;
@Override
public String toString()
return "DimImageBean" +
"dimFilePath='" + dimFilePath + '\\'' +
'';
3.再写该类的converter,实现PropertyConverter,从而实现存储list
/**
* LoveLin
* <p>
* Describe 实现PropertyConverter,从而实现存储list
*/
public class DimConverter implements PropertyConverter<List<DimImageBean>,String>
//将数据库中的值,转化为实体Bean类对象(比如List<String>)
@Override
public List<DimImageBean> convertToEntityProperty(String databaseValue)
if (databaseValue==null)
return null;
List<String> list_str = Arrays.asList(databaseValue.split(","));
List<DimImageBean> list_transport = new ArrayList<>();
for (String s : list_str)
list_transport.add(new Gson().fromJson(s, DimImageBean.class));
return list_transport;
//将实体Bean类(比如List<String>)转化为数据库中的值(比如String)
@Override
public String convertToDatabaseValue(List<DimImageBean> arrays)
if (arrays == null)
return null;
else
StringBuilder sb = new StringBuilder();
for (DimImageBean array : arrays)
String str = new Gson().toJson(array);
sb.append(str);
sb.append(",");
return sb.toString();
到此,就完成了对list集合数据的存储,已下是简单的使用案例~~
//~~~~~~这个是简单的案例~~~~~~~~
//创建数据库Bean对象
mImageListBean = new ImageListDownDBBean();
ArrayList<DimImageBean> list00 = new ArrayList<>();
for (int i = 0; i < dimImageList.size(); i++)
//创建DimImageBean数据存储单条数据
DimImageBean dimBean = new DimImageBean();
dimBean.setDimFilePath(dimImageList.get(i));
list00.add(dimBean);
//存入模糊图片路径的list
mImageListBean.setMDimImageList(list00);
以上是关于GreenDao存List案例的主要内容,如果未能解决你的问题,请参考以下文章