GreenDao儲存list集合資料
假如在實體類A中有一種List型別的資料也需要儲存到資料庫中,該如何處理呢??**
答案很簡單,可以轉換一下思路,首先考慮下如果是String型別的資料,首先遍歷List資料,然後將所有的String物件都append到一個StringBuilder中,然後儲存在資料庫中即可。
事實上,GreenDao已經為我們考慮到了這種情況,因此才有了 PropertyConverter 這個介面
在PropertyConverter介面中,有兩個需要實現的抽象方法
//將資料庫中的值,轉化為實體Bean類物件(比如List<String>)
P convertToEntityProperty(D databaseValue);
//將實體Bean類(比如List<String>)轉化為資料庫中的值(比如String)
D convertToDatabaseValue(P entityProperty);
舉個例子:
public class StringConverter implements PropertyConverter<List<String>, String>{
@Override
public List<String> convertToEntityProperty(String databaseValue) {
if (databaseValue == null) {
return null;
}
else {
List<String> list = Arrays.asList(databaseValue.split(","));
return list;
}
}
@Override
public String convertToDatabaseValue(List<String> entityProperty) {
if (entityProperty==null){
return null;
}
else{
StringBuilder sb= new StringBuilder();
for(String link:entityProperty){
sb.append(link);
sb.append(",");
}
return sb.toString();
}
}
}
如果list中含自定義的類B怎麼辦呢?
從網上看到一個很好的處理辦法: 使用json!json作為客戶端和服務端之間資料傳遞的載體,不僅能滿足我們現在的業務需求,而且我們還有gson這個解析框架來幫我們做轉換!簡直不要更簡單。
舉個例子:
package com.greendaotest1204.bean;
import com.google.gson.Gson;
import org.greenrobot.greendao.converter.PropertyConverter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* Author:wang_sir
* Time:2017/12/4 11:22
* Description:This is B_Converter
*/
public class B_Converter implements PropertyConverter<List<B>, String> {
@Override
public List<B> convertToEntityProperty(String databaseValue) {
if (databaseValue == null) {
return null;
}
List<String> list_str = Arrays.asList(databaseValue.split(","));
List<B> list_transport = new ArrayList<>();
for (String s : list_str) {
list_transport.add(new Gson().fromJson(s, B.class));
}
return list_transport;
}
@Override
public String convertToDatabaseValue(List<B> arrays) {
if (arrays == null) {
return null;
} else {
StringBuilder sb = new StringBuilder();
for (B array : arrays) {
String str = new Gson().toJson(array);
sb.append(str);
sb.append(",");
}
return sb.toString();
}
}
}
A類中list需要轉換
@Convert(columnType = String.class, converter = B_Converter.class)
private List<B> transportDescriptions;
A類中部分程式碼
@Entity
public class A {
@Id
private Long id;
@Unique
private String transportNo;//配送單號
@Convert(columnType = String.class, converter = B_Converter.class)
private List<B> transportDescriptions;
@NotNull
private String transportType;//物流型別
private String transportPeople;//配送人
private String transportPeopleMobile;//配送人電話
private String transportTime;//配送時間
private String transportInfo;//配送詳情
private String petName;//會員名
相關推薦
GreenDao儲存list集合資料
假如在實體類A中有一種List型別的資料也需要儲存到資料庫中,該如何處理呢??** 答案很簡單,可以轉換一下思路,首先考慮下如果是String型別的資料,首先遍歷List資料,然後將所有的String物件都append到一個StringBuilder中
SpringCloud工作筆記070---SpringCloud中使用Redis儲存List型別資料
JAVA技術交流QQ群:170933152 看看這邊封裝的redis的工具類: src\main\java\cn\gov\majorproj\scadmin\util\CacheUtils.java 注意,就是用
java list集合資料升序降序排序
1,Sting型別的List集合排序 List<String> list=new ArrayList<>(); list.add("易皇星"); list.add("阿弟"); list.add("冰球
java中,list集合資料匯出到excel表格通用工具類
1.建立CustomTag類(實體類class自定義欄位名稱註解類) package CzExcel; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; /** * 實體
2 個 List 集合資料求並、補集操作
開發過程中,我們可能需要對 2 個 或多個 List 集合中的資料進行處理,比如多個 List 集合資料求 相同元素,多個 List 集合資料得到只屬於本身的資料,如圖示: 這裡以 2 個 List 介紹,有一些業務要求我們處理得到圖上的 3 中情況 *
利用柵格處理list集合資料,使每行顯示兩條或者多資料時候
這個是微信小程式的框架,TouchUI,做頁面查詢資料是list的物件,但是要用柵格每行顯示兩條資料 <ui-row wx:for="{{resumeCoverImg}}" wx:key="unique" class="resumeCoverImg">
JQuery中Ajax實現對Map,List集合資料的接收
jQuery中Ajax接收後臺Map、List集合資料實現過程 最近學習到jQuery實現非同步傳輸資料部分,雖然跟著視訊演練了常規json資料的接收,但個人感覺不太夠,現實應用中肯定不只是傳輸簡短以
ssm- 兩個list集合資料傳輸到jsp介面 類似for迴圈遍歷出來
後臺傳輸list集合的程式碼@RequestMapping("success.html")public ModelAndView successInfo(){List<Info> list=is.getInfoList();List<String> l
如何用android sharedpreferences儲存List集合
在Android開發過程中有時需要用到一些簡單的資料儲存。 在系統自帶的sharedpreferences中提供了一些列的資料型別,但有時候需要儲存一個List集合,系統則沒有現成的方法: 以儲存場景為例: public static String SceneLis
List集合儲存資料的結構
資料儲存的常用結構有:堆疊、佇列、陣列、連結串列。 1、堆疊 堆疊,採用該結構的集合,對元素的存取有如下的特點: 1.先進後出(即,存進去的元素,要在它後面的元素依次取出後,才能取出該元素)。 例如,子彈壓進彈夾,先壓進去的子彈在下面,後壓進去的子彈在上面,當開槍時,先彈出上面的子彈
List集合迴圈儲存物件時,導致迴圈後集閤中全部資料都是最後一條的情況
在處理資料,List集合迴圈儲存物件時,發現迴圈後集閤中全部資料都是最後一條的情況。 code: ... AlarmInfo ai = new AlarmInfo(); //建立物件 List
List集合去除重複資料 Java中List集合去除重複資料的方法
【轉自】Java中List集合去除重複資料的方法 1. 迴圈list中的所有元素然後刪除重複 public static List removeDuplicate(List list) { for ( int
JAVA找出List集合中重複次數最多的資料和次數
import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Ent
去除List集合中的重複值(四種好用的方法)(基本資料型別可用)
最近專案中需要對list集合中的重複值進行處理,大部分是採用兩種方法,一種是用遍歷list集合判斷後賦給另一個list集合,一種是用賦給set集合再返回給list集合。 但是賦給set集合後,由於set集合是無序的,原先的順序就打亂了。所以我又想著能不能用set的特性進行去重又不打亂順序
List集合根據儲存物件的屬性欄位排序實現
轉載:來自:https://blog.csdn.net/u013821825/article/details/61202287 java8之前的用法: import java.util.ArrayList; import java.util.Collections;
C#如何遍歷刪除List集合中的資料
在搜尋該問題之前我想你一定已經用過foreach遍歷並Remove的操作,突然發現報出了 集合已修改;可能無法執行列舉操作的異常。 我這裡給大家提供四種方式遍歷刪除資料: 第一種是模仿阿里巴巴Java開發手冊1.4的刪除: 新貼出手冊中的內容: 發現C#裡並沒有
List集合儲存字串和自定義物件並遍歷(for迴圈和迭代)
package list; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** * :List集合儲存字串並遍歷?(迭代器和普通for)
JDBC基礎-將資料庫資料遍歷到List集合中
這裡用到了自己寫的JDBC工具類使用了配置檔案 配置檔案:pro.properties 配置檔案必須和你的class檔案放在一起才能連結資料庫 DriverPath=com.mysql.jdbc.
java 大資料比較兩個list集合的差值
有這麼個場景,每天需要定時任務插入增量資料。如果通過介面獲取的直接根據時間過濾,那麼就能直接就可以插入庫中。但有時獲取到的並不是增量資料,比如微信公眾號獲取關注者列表時,獲取到的是全量資料,這樣每天就得將全量資料與庫中進行比較,只有庫中不存在資料才進行插入。這就有了兩個list比較差值的問題。
ArrayList資料add時出現覆蓋,及arraylist最後獲取到(儲存到集合中的)資料相同。
@Override public ArrayList<TaskDataPackage> getData() { System.out.println("getData()"); ArrayList<TaskDataPackage> d