如何从数据库中检索 BLOB 图像以及哪种数据类型?
How to retrieve BLOB image from the database and in which data type?
我有以下结构。我将一些表连接在一起以从我的 SQL 数据库中获取结果。我有一个实际存储 BLOB 图像的列。我想知道如何在变量中检索此信息,然后可以使用该变量在图形用户界面(例如 swing window.
中加载此图像
这是我如何读取数据库的其他字符串字段的代码。
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 存储在数据库中?
干杯。
我读到了 this 一篇,但我认为这个实现对我没有帮助。
好了,只需整合你和我的循环:
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);线。祝你好运!
我有以下结构。我将一些表连接在一起以从我的 SQL 数据库中获取结果。我有一个实际存储 BLOB 图像的列。我想知道如何在变量中检索此信息,然后可以使用该变量在图形用户界面(例如 swing window.
中加载此图像这是我如何读取数据库的其他字符串字段的代码。
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 存储在数据库中?
干杯。
我读到了 this 一篇,但我认为这个实现对我没有帮助。
好了,只需整合你和我的循环:
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);线。祝你好运!