如何使用HiveJDBC显示来自HiveBinary字段的图像

qhhrdooz  于 2021-06-02  发布在  Hadoop
关注(0)|答案(0)|浏览(271)

我想从配置单元二进制字段加载和显示图像,该字段是从SQLServer图像字段存储为二进制的。
我尝试了以下几种方法来解决这个问题
以字符串形式从配置单元jdbc结果集提取二进制数据:
查询: select image from table_4 where imageId=12; ```
String image=res.getString(1);
byte[] imageBytes=image.getBytes("UTF-8");
....

写入输出流并保存为一些jpg图像。但无法显示图像,因为不支持的文件格式。
从配置单元jdbc结果集提取二进制数据作为字节数组:
查询: `select image from table_4 where imageId=12;` ```
byte[] imageBytes=res.getBytes(1);
.....

获取异常作为不支持的方法,hiveresulset.getbytes。
从配置单元jdbc结果集提取二进制数据作为blob:
查询: select image from table_4 where imageId=12; ```
Blob imageBlob=res.getBlob(1);
.....

获取异常作为不支持的方法,hiveresulset.getblob。
从配置单元jdbc结果集提取二进制数据作为输入流,即二进制流:
查询: `select image from table_4 where imageId=12;` ```
InputStream imageStream=res.getBinaryStream(1);
byte[] imageBytes=IOUtils.toByteArray(is);
....

写入输出流并保存为一些jpg图像。但无法显示图像,因为不支持的文件格式。
注意:图像是配置单元中的二进制类型。我们在javajdbc中没有任何这样的二进制类型。这就是为什么我要将二进制文件访问到字符串/字节数组/输入流中。。。等
请帮助我如何访问和显示配置单元二进制数据作为图像使用配置单元jdbc。如果我的方法是正确的,那么请帮助我使用不同的编码方法,可以以支持的文件格式显示图像内容。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题