1. 程式人生 > >從資料庫查詢得到的列舉資料列,int轉成對應的列舉欄位

從資料庫查詢得到的列舉資料列,int轉成對應的列舉欄位

列舉型別

public enum Emotion{
未分析,正面,中立,負面
}

這裡使用的是MiniDao

@MiniDao("emotionMiniDao")
public interface EmotionMiniDao {

@Sql("SELECT CONCAT(emotion) `name`,COUNT(*) ` value` FROM  table_name  GROUP BY emotion")
List<Map<String, String>>  test();

}

注:CONCAT(emotion)   sql語句把int 型別轉換成varchar型別  不然會報java.lang.Integer cannot be cast to java.lang.String

for (Map<String, String> map : list) {   //list是返回的MiniDao返回的List<Map<String, String>> 
for (String key : map.keySet()) {
if (key.equals("name")) {
int value = Integer.parseInt(map.get(key).toString());
String data = Emotion.values()[value].toString();
map.put(key, data);
}
}
}