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資料庫之修改儲存地址資料庫
- mybatis儲存過程返回listMyBatis儲存過程
- Android Room 之儲存 Objects 中的 ListAndroidOOMObject
- 集合框架(List儲存字串並遍歷)框架字串
- RxCache 整合 Android 的持久層框架 greenDAO、RoomAndroid框架OOM
- SQL語句寫到累了?試試GreenDAOSQL
- List<Integer>裡有可能存String型別元素嗎?型別
- ORM框架之GreenDao3.0使用詳解(二)ORM框架
- Power BI實用案例——存貨分析
- VSAN儲存結構解析+儲存資料恢復案例資料恢復
- ORM框架之GreenDao3.0整合與註解(一)ORM框架
- [案例分享]華為S5300儲存硬碟掉恢復案例硬碟
- MySQL怎樣透過Adjacency List儲存樹形結構?MySql
- InnoDB儲存引擎鎖機制(一、案例)儲存引擎
- Spring整合Quartz案例使用RAM儲存方式Springquartz
- Spring整合Quartz案例使用JDBC儲存方式SpringquartzJDBC
- 第三方資料庫框架 - GreenDao簡介資料庫框架
- vue2基礎元件通訊案例練習:把案例Todo-list改寫成本地快取Vue元件快取
- Python List 列表list()方法Python
- KingbaseRAC部署案例之---基於SAN儲存部署
- 函式儲存過程併發控制-案例函式儲存過程
- 儲存與伺服器連線案例分享伺服器
- Solidity案例詳解(一)存錢罐合約Solid
- Mysql儲存過程基礎(案例+程式碼)MySql儲存過程
- Python List 列表list()方法分享Python
- list
- Sting 轉List<String>轉List<Integer>
- 【儲存資料恢復】NetApp儲存誤刪除的資料恢復案例資料恢復APP
- [分散式]高併發案例---庫存超發問題分散式
- int[] 、 list<int> 、 list<int>[] 的區別
- 【儲存資料恢復】EqualLogic PS系列儲存磁碟故障的資料恢復案例資料恢復
- 【伺服器儲存資料恢復】HP-Lefthand儲存資料恢復案例伺服器資料恢復
- List 按照指定大小分割為多個list的幾種方式,list分片
- 省市list
- Reorder List
- python listPython
- redis listRedis
- Android主流三方庫原始碼分析(四、深入理解GreenDao原始碼)Android原始碼