Hive数据库的二进制类型byte[]存储方式,Method Not Supported

Hive通过JDBC存储二进制类型数据时候报 Method Not Supported

Hive的jdbc包不支持直接prepareStatement直接setObject、setBytes、setByte、setBlob去存储二进制数据.

通过setBinaryStream输入流的方法:

首先把二进制数组转成输入流:

InputStream input = new ByteArrayInputStream((byte[]) obj);

再通过setBinaryStream()将二进制的输入流存储到数据库中

之后jdbc读取数据的时候再通过输入流读取再通过输出流转成byte[]

InputStream inStream = rs.getBinaryStream(columnName);

ByteArrayOutputStream swapStream = new ByteArrayOutputStream();

byte[] buff = new byte[100]; //存放循环读取的临时数据

猜你喜欢

转载自blog.csdn.net/icemeco/article/details/119939188