我想提供两个API函数来存储数据库中的文件 - 一个接受byte[]
(或InputStream
),另一个接受String
。我想知道如何实现这样的API。
我看到以下选项:
PreparedStatement.setBytes
(或PreparedStatement.setBinaryStream
)用于BLOB,将PreparedStatement.setString
用于CLOB。我不喜欢有两个领域。 String.getBytes()
将给定的String
转换为byte[]
,从而回到二进制的情况。我不希望将String
转换为byte[]
。我想知道是否有一个解决方案不需要两个字段并避免额外的字节缓冲区。
答案 0 :(得分:0)
Java String和Clob是Unicode并存储为双字节字符。因此,如果要将这些值存储在byte []或Blob中,则需要进行一些转换。
因此,最好的方法是使用两个单独的字段,一个用于BLOB,另一个用于CLOB值。