如何将文本和二进制文件存储在hsqldb数据库中?

时间:2013-03-03 21:04:47

标签: text binary hsqldb

我想提供两个API函数来存储数据库中的文件 - 一个接受byte[](或InputStream),另一个接受String。我想知道如何实现这样的API。

我看到以下选项:

  1. 为文本文件定义两个字段 - 一个是二进制文件的BLOB,另一个是CLOB。然后我可以将PreparedStatement.setBytes(或PreparedStatement.setBinaryStream)用于BLOB,将PreparedStatement.setString用于CLOB。我不喜欢有两个领域。
  2. 使用String.getBytes()将给定的String转换为byte[],从而回到二进制的情况。我不希望将String转换为byte[]
  3. 我想知道是否有一个解决方案不需要两个字段并避免额外的字节缓冲区。

1 个答案:

答案 0 :(得分:0)

Java String和Clob是Unicode并存储为双字节字符。因此,如果要将这些值存储在byte []或Blob中,则需要进行一些转换。

因此,最好的方法是使用两个单独的字段,一个用于BLOB,另一个用于CLOB值。