android如何从mysql中下载blob格式的图片,并显示他,请给出代码
时间: 2023-05-11 16:04:13 浏览: 183
以下是一个简单的 Android 代码示例,可以从 MySQL 数据库中下载 BLOB 格式的图像并将其显示在 ImageView 中:
```
// 创建一个 AsyncTask 来处理数据库查询和图像下载
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView imageView;
public DownloadImageTask(ImageView imageView) {
this.imageView = imageView;
}
protected Bitmap doInBackground(String... urls) {
String url = urls[0];
Bitmap bitmap = null;
try {
// 连接到 MySQL 数据库
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "username", "password");
// 执行查询
PreparedStatement stmt = conn.prepareStatement("SELECT image FROM mytable WHERE id = ?");
stmt.setInt(1, 1);
ResultSet rs = stmt.executeQuery();
// 从结果集中读取图像数据
if (rs.next()) {
byte[] imageBytes = rs.getBytes("image");
bitmap = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.length);
}
// 关闭连接和结果集
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
return bitmap;
}
protected void onPostExecute(Bitmap result) {
// 将图像显示在 ImageView 中
imageView.setImageBitmap(result);
}
}
// 在 Activity 中调用 AsyncTask
ImageView imageView = (ImageView) findViewById(R.id.imageView);
new DownloadImageTask(imageView).execute("http://example.com/image.jpg");
```
请注意,这只是一个简单的示例,实际应用中需要考虑更多的安全和性能问题。
阅读全文