如何在android中的sqlite数据库中存储带有列表的自定义对象

ham*_*ami 2 database sqlite android database-design

如何为包含这样的列表的自定义对象创建表

public class Mobel implements Parcelable {
    int thumbnail;
    List<Integer> pics;
    int price;
    String joziat;
    String code;
}
Run Code Online (Sandbox Code Playgroud)

如你所知int和string列没有问题,但我应该如何存储我的整数列表?我正在考虑为它制作一个单独的表但是因为我不知道很多照片我对于特定物体我不知道我应该如何加入它们

Adr*_*man 9

确实你不能在sqlite中存储对象,你可以序列化它并存储序列化对象:

Gson gson = new Gson();
String toStoreObject = gson.toJson(modelObject, Model.class);
Run Code Online (Sandbox Code Playgroud)

当你收到字符串时,只需:

Model modelObject = gson.fromJson(storedObjectString, Model.class);
Run Code Online (Sandbox Code Playgroud)

或者只是序列化对象的属性(在您的情况下为List).

我会做的不同的事情:

  1. 为图像创建另一个表,并将该表链接到存储Model对象的表(n到1关系)

  2. 不要在sqlite中存储图像.将它们存储在内部存储中,并在sqlite中保存,只保存文件的路径.

  3. 如果您真的想要将图像存储在sqlite中,请将图像转换为base64字符串并存储该字符串.