关于 java:如何从数据库中检索 BLOB 图像以及使用哪种数据类型?

How to retrieve BLOB image from the database and in which data type?

我有以下结构。我将一些表连接在一起以从我的 SQL 数据库中获取结果。我有一列实际上存储了一个 BLOB 图像。我想知道如何在变量中检索此信息,然后可以使用该变量在图形用户界面(例如摆动窗口)中加载此图像。

这是我如何读取数据库的其他 - 字符串 - 字段的代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ResultSet result = statement.executeQuery(SQLQuery);
ResultSetMetaData metaData = rs.getMetaData();

while (result.next())
{

  for (int i = 1; i <= columnsNumber; i++)
  {
         String AttributeName = metaData.getColumnName(i);
         String AttributeValue = result.getString(i);

         if(AttributeName =="UserName")
         {
             String userName = AttributeValue;
         }
         if(AttributeName =="UserImage")
         {
             //code here to get the BLOB user Image.?
         }
   }
}

最后一个想法是,如何使用给定的图片(来自文件系统)将此图像作为 BOLB 存储在数据库中?

干杯。

我读到了这个,但我认为这个实现对我没有帮助。


你去吧,只需整合你和我的循环:

1
2
3
4
5
6
7
8
9
10
11
12
13
 while (resultSet.next()) {
  // String name = resultSet.getString(1);
  // String description = resultSet.getString(2);
  File image = new File("your path");
  FileOutputStream fos = new FileOutputStream(image);
  byte[] buffer = new byte[1];

  InputStream is = resultSet.getBinaryStream(3);
  while (is.read(buffer) > 0) {
    fos.write(buffer);
  }
  fos.close();
}

当然记得要正确修改path和InputStream is = resultSet.getBinaryStream(3);线。祝你好运!