在android studio中如何用java将在mysql上保存的blob类型的图片保存到App里,再通过缓存显示到页面上

时间: 2023-12-18 10:05:27 浏览: 34
你可以使用以下步骤在Android Studio中使用Java将MySQL数据库中保存的BLOB类型的图片保存到你的应用程序中: 1. 首先,建立一个Java类来连接到MySQL数据库和执行查询。你可以使用JDBC API来完成这些任务。以下是一个示例代码片段: ``` // Load the MySQL JDBC driver Class.forName("com.mysql.jdbc.Driver"); // Connect to the database Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password"); // Prepare the SELECT statement to retrieve the BLOB data PreparedStatement pstmt = conn.prepareStatement("SELECT image_data FROM mytable WHERE id = ?"); // Set the parameter for the ID of the image you want to retrieve pstmt.setInt(1, imageId); // Execute the SELECT statement and get the result set ResultSet rs = pstmt.executeQuery(); // Get the BLOB data from the result set if (rs.next()) { Blob blob = rs.getBlob("image_data"); InputStream in = blob.getBinaryStream(); // Read the BLOB data into a byte array ByteArrayOutputStream out = new ByteArrayOutputStream(); byte[] buffer = new byte[4096]; int bytesRead = -1; while ((bytesRead = in.read(buffer)) != -1) { out.write(buffer, 0, bytesRead); } byte[] imageData = out.toByteArray(); // Save the byte array to a file on disk FileOutputStream fos = new FileOutputStream("image.jpg"); fos.write(imageData); fos.close(); } ``` 2. 接下来,你需要将这些图像数据保存到你的应用程序中。你可以将这些图像数据保存到内部存储器或外部存储器中,具体取决于你的需求。以下是一个将图像数据保存到内部存储器中的示例代码: ``` // Get a reference to the internal storage directory File storageDir = getFilesDir(); // Create a new file in the storage directory File imageFile = new File(storageDir, "image.jpg"); // Write the image data to the file FileOutputStream fos = new FileOutputStream(imageFile); fos.write(imageData); fos.close(); ``` 3. 最后,你可以使用Android的ImageView控件来显示这些图像数据。你可以从文件中读取图像数据,然后将其设置为ImageView的源。以下是一个示例代码片段: ``` // Read the image data from the file FileInputStream fis = new FileInputStream(imageFile); byte[] imageData = new byte[fis.available()]; fis.read(imageData); fis.close(); // Set the byte array as the image data for the ImageView Bitmap bitmap = BitmapFactory.decodeByteArray(imageData, 0, imageData.length); imageView.setImageBitmap(bitmap); ``` 请注意,这只是一个简单的例子,实际上还需要考虑一些其他的因素,例如内存管理和异常处理。此外,你需要在AndroidManifest.xml文件中声明适当的权限来访问存储器。

相关推荐

最新推荐

recommend-type

Java从数据库中读取Blob对象图片并显示的方法

主要介绍了Java从数据库中读取Blob对象图片并显示的方法,实例分析了Java读取数据库中Blob对象图片的技巧与操作方法,需要的朋友可以参考下
recommend-type

android将图片转换存到数据库再从数据库读取转换成图片实现代码

首先,我们要把图片存入到数据库中,首先要创建一个数据库, 如下所示: 代码如下:package com.android.test; import java.io.ByteArrayOutputStream; import android.content.ContentResolver;import android....
recommend-type

Java 类型相互转换byte[]类型,Blob类型详细介绍

主要介绍了Java 类型相互转换byte[]类型,Blob类型的相关资料,需要的朋友可以参考下
recommend-type

Java实现用Mysql存取图片操作实例

主要介绍了Java实现用Mysql存取图片操作实例,本文讲解了使用BLOB类型保存和读取图片的代码实例,需要的朋友可以参考下
recommend-type

什么是blob,mysql blob大小配置介绍

BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型
recommend-type

STC89C51 简单时钟

STC89C51 简单时钟,叫你从基础开始学习单片机,
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB归一化方法大比拼:5种方法,哪种最适合你的数据?

![MATLAB归一化方法大比拼:5种方法,哪种最适合你的数据?](https://www.finebi.com/wp-content/uploads/2019/11/FineBI%E8%A1%8C%E4%B8%9A%E9%A9%BE%E9%A9%B6%E8%88%B1-1024x510.png) # 1. MATLAB归一化概述 归一化是一种数据预处理技术,用于将数据缩放到特定范围内,从而消除不同特征之间的尺度差异。在MATLAB中,有各种归一化方法可用于不同类型的数据和应用程序。 归一化的主要目的是: - 提高模型的训练效率和准确性,通过消除特征之间的尺度差异,使模型能够更有效地学习
recommend-type

failed to register layer: ApplyLayer exit status 1 stdout: stderr: archive/tar: invalid tar header

很抱歉听到这个问题。这个错误通常是由于Docker镜像损坏或Docker存储库中缺少所需的图层引起的。您可以尝试以下几种方法来解决这个问题: 1. 清理Docker镜像和容器:使用命令“docker system prune”清理不再使用的Docker对象。 2. 检查Docker存储库:确保您正在使用可靠的Docker存储库,并检查是否存在所有必需的图层。 3. 重新下载Docker镜像:如果您确定问题是由于损坏的Docker镜像引起的,则可以尝试重新下载Docker镜像。 4. 更新Docker版本:如果您使用的是旧版Docker,则可能会出现此问题。尝试更新到最新版本的Docke
recommend-type

Linux系统常用操作命令大全手册

附件是Linux系统常用操作命令大全手册,是 markdown格式,其中覆盖了Linux系统管理、文件操作、网络配置等多个方面,都是日常工作中非常常用的命令,欢迎大家下载学习使用!