GreenDao存集合类型数据
来源:互联网 发布:mac flash发热 编辑:程序博客网 时间:2024/05/22 05:11
此文章是基于已经成功导入GreenDao了,但是GreenDao存集合类型的数据需要多几步的操作,至于怎么导入,这个自己上网查了,这篇就不赘述了(或者以后可能会补上,等我忘了怎么用把。。。)
第一步,导入Gson第三方。
第二步,新建类InterConverter , StringConverter 类,代码如下
public class InterConverter implements PropertyConverter<List<Integer>, String> { private final Gson mGson; public InterConverter() { mGson = new Gson(); } @Override public List<Integer> convertToEntityProperty(String databaseValue) { Type type = new TypeToken<ArrayList<Integer>>() { }.getType(); ArrayList<Integer> list = mGson.fromJson(databaseValue , type); return list; } @Override public String convertToDatabaseValue(List<Integer> entityProperty) { String dbString = mGson.toJson(entityProperty); return dbString; }}
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(); } }}
第三步,在最开始的编译生成的DaoMaster DaoSession 的那个类,下面添加新的元素进去 然后再重新Sync Project
with Gradle Files
@Convert 是添加集合需要的
核心代码如下:
@Convert(columnType = String.class, converter = StringConverter.class) private List<String> nickname; @Convert(columnType = String.class, converter = InterConverter.class) private List<Integer> hahaha;
我编译之后的OBDL类最终代码如下:
@Entitypublic class OBDL { @Id private Long id; @Property @NotNull private String name; @Convert(columnType = String.class, converter = StringConverter.class) private List<String> nickname; @Convert(columnType = String.class, converter = InterConverter.class) private List<Integer> hahaha; @Generated(hash = 1316419519) public OBDL(Long id, @NotNull String name, List<String> nickname, List<Integer> 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<String> getNickname() { return this.nickname; } public void setNickname(List<String> nickname) { this.nickname = nickname; } public List<Integer> getHahaha() { return this.hahaha; } public void setHahaha(List<Integer> 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<Integer> 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<String> 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);// } }}
存int 集合和 String 集合都写了(String集合就是注释掉的那一块)
OK 收工
---------------------------------------------------------------------------------------------------------------------------------------------
最后共享一些最近的感悟: 之前一直不觉得 “生活就像巧克力盒....”那句话有什么好的。突然有一天,平淡的生活
起了对我自己的波澜,就好像我一直就在和我自己下一盘棋,突然之间棋盘不见,棋子再也不能放到棋盘上面。。。
有的不是难过,不是生气,只是莫名的无奈。对,无奈,说不出具体为什么无奈,之前自己所做仿佛就是在嘲笑现在的自己。
--------------------------这些是写给我自己的,不是要看到的人明白什么意思的,我只是希望,多年以后我不会把现在的感受给忘了吧。
阅读全文
1 0
- GreenDao存集合类型数据
- GreenDao通过字符串转换存对象集合
- GreenDao通过字符串转换存对象集合
- GreenDao存储list集合数据
- 关于Acess 图片存为ole类型,数据集合显示
- 使用GreenDao存储list集合数据
- GreenDao保存List<String>类型数据
- GreenDao保存List<String>类型数据
- GreenDao集合
- 集合Set类的数据存读取
- 基本类型数据在内存中的存储
- CoreData中存任意类型的数据
- CoreData中存任意类型的数据
- CoreData中存任意类型的数据
- float类型数据在内存中的存储
- 封装集合类型的数据
- Greendao 插入数据失败
- JDBC 调用 oracle 存数过程 返回复合类型数据
- 如何批量重命名照片,但是去掉那个烦人的括号
- 第一个c语言程序
- Ruby vs Java -- "== 与 equal"
- CUDA学习资源
- OCR 中文汉字识别,可用于文档识别,身份证识别,名片识别,采用字库+卷积神经网络
- GreenDao存集合类型数据
- 二维数组的查找
- HDOJ 今年暑假不AC JAVA 2037
- Python实现冒泡排序
- 树莓派3代b型静态IP设置,和ssh的wlan配置
- SOCKET的长连接与短连接
- InnoDB体系架构
- codeforces 631C (单调栈+思维)
- ImageLoader加载图片