【问题标题】:ActiveAndroid not supporting byte[]?ActiveAndroid 不支持字节 []?
【发布时间】:2017-08-31 03:51:02
【问题描述】:

由于在数据库中将位图保存为 byte[] 而不是 String 更快,因此我试图为我的项目这样做。但是,ActiveAndroid 似乎不支持 byte[]。这是我的代码(未创建列 -> 是的,我之前将它们作为字符串,但我重新安装了我的应用程序以确保这不会造成任何问题):

@Table(name = "Image")
public class Image extends Model {
@Column(name = "Image_data")
public byte[] imageData;

@Column(name = "Thumbnail_data")
public byte[] thumbnailData;

public Day day() {
    return (Day)getMany(Day.class,"Day").get(0);
}

public Image(byte[] imageData, byte[] thumbnailData) {
    super();
    this.imageData = imageData;
    this.thumbnailData = thumbnailData;
}

public Image() {
    super();
}

}

我使用的是 ActiveAndroid 测试版(下载为 .jar):

compile files('libs/activeandroid-3.1-beta.jar')

我认为使用 beta 版本可能会导致这个问题,所以我更改了我的 build.gradle,因为它显示在他们的github page:

repositories {
mavenCentral()
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
}

compile 'com.michaelpardo:activeandroid:3.1.0-SNAPSHOT'

不幸的是,这也不起作用。我希望可以在 ActiveAndroid 中将 byte[] 存储为 BLOB。

【问题讨论】:

    标签: android sqlite activeandroid


    【解决方案1】:

    我刚刚找到了一个可行的解决方案。只需将 byte[] 转换为 String,将其保存到数据库中,然后在需要时将 String 转换回 byte[]:

    @Table(name = "Image")
    public class Image extends Model {
    
    @Column(name = "Image_data")
    public String imageData;
    
    @Column(name = "Thumbnail_data")
    public String thumbnailData;
    
    public Day day() {
        return (Day)getMany(Day.class,"Day").get(0);
    }
    
    public Image(byte[] imageData, byte[] thumbnailData) {
        super();
        this.imageData = Base64.encodeToString(imageData, Base64.NO_WRAP);
        this.thumbnailData = Base64.encodeToString(thumbnailData, Base64.NO_WRAP);
    }
    
    public Image() {
        super();
    }
    
    public byte[] getImageBytes() {
        return Base64.decode(imageData, Base64.NO_WRAP);
    }
    
    public byte[] getThumbnailBytes() {
        return Base64.decode(thumbnailData, Base64.NO_WRAP);
    }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-10-04
      • 2014-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-07
      相关资源
      最近更新 更多