如何将自己的图像插入 SQLite table?

How to insert your own image into a SQLite table?

我制作了一个 table,其中已经存储了用户信息。当用户使用 id 注册时,如果 id 匹配,则会从 table 中检索所有详细信息,如用户名、课程。现在我想在我的用户信息 table 中添加个人资料图片。互联网上几乎所有教程都是关于将照片从 phone 保存到该数据库并检索它。但我不想要那个。我想为每个用户在 table 中添加不同的图像,即它应该特定于用户。现在我知道使用了 BLOB 数据类型,图像应该转换为字节。但我不知道应该将图像存储在哪里,是在我的 phone 还是在我的 res 文件夹中。或者也许将其存储在互联网上。我很困惑。 我应该提一下,这不是一个理想的应用程序,它只是一个模型。

要考虑的最重要因素之一是图像的大小。如果大小可能超过 200k,那么出现问题的风险就会增加,而不是将图像存储在数据库中,而是检索图像。

如果不编写自己的 CursorWindow 替代方案,则 CursorWindow(用于保存 Cursor 中行的子组的缓冲区)的大小限制为 2M(在某些更高版本中,我认为它是 1M) .如果图片接近 2MB,则无法检索图片(即使不考虑其他列的 space)。

因此,通常推荐的方法是不存储图像,而是存储从其他地方的文件存储中检索图像的方法(您提到了 res 文件夹,这可能没问题,但您可能需要考虑APK 的大小),然后您可以将文件路径存储在数据库中。

有一个涵盖上述内容的更全面的答案,包括将小图像存储在数据库中,将较大图像存储在其他地方(资产文件夹)here

对于和我有同样问题的人,我发现 this 教程是存储和检索图像的最简单方法。它使用外部 sqlite 数据库来存储图像和信息,并在 java 页面中访问它以显示,我发现这很容易。