Java 如何从数据库中检索BLOB图像以及数据类型?
我有以下结构。我将一些表连接在一起,以从我的SQL数据库中获得一个结果。我有一个列,它实际上存储了一个BLOB图像。我想知道如何在一个变量中检索这些信息,然后使用该变量在图形用户界面(如swing window)中加载此图像 下面是我如何读取数据库其他字符串字段的代码Java 如何从数据库中检索BLOB图像以及数据类型?,java,blob,Java,Blob,我有以下结构。我将一些表连接在一起,以从我的SQL数据库中获得一个结果。我有一个列,它实际上存储了一个BLOB图像。我想知道如何在一个变量中检索这些信息,然后使用该变量在图形用户界面(如swing window)中加载此图像 下面是我如何读取数据库其他字符串字段的代码 ResultSet result = statement.executeQuery(SQLQuery); ResultSetMetaData metaData = rs.getMetaData(); while (result.
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.?
}
}
}
ResultSet result=statement.executeQuery(SQLQuery);
ResultSetMetaData元数据=rs.getMetaData();
while(result.next())
{
对于(inti=1;i,您可以将您的循环和我的循环集成起来:
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();
}
当然,请记住正确修改路径和InputStream is=resultSet.getBinaryStream(3);行。祝你好运!谢谢!我会尝试一下。是否有机会使用图像在GUI中显示它,而不实际将图片写入文件系统?是的,使用ByteArrayOutputStream而不是FileOutputStream。我要更新我的答案还是你要管理?这个ByteArrayOutputStream将用于将其写入ImageIcon对象JEC或者怎么做?你可以用这个流来构造它:newImageIcon(bos.toByteArray());当然可以。如果你还有任何问题,请随时提问。