2013-03-03 61 views
0

我想给两个API函数来存储文件在一个DB - 一个接受byte[](或一个InputStream)和另一个接受String。我不知道如何实现这样一个API。如何将文本和二进制文件存储在hsqldb数据库中?

我看到如下选项:

  1. 定义两个领域 - 一个BLOB的二进制文件,另一个的CLOB - 为文本文件。然后,我可以使用PreparedStatement.setBytes(或PreparedStatement.setBinaryStream)作为BLOB,而PreparedStatement.setString作为CLOB。我不喜欢有两个领域。
  2. 使用String.getBytes()将给定String转换为byte[],从而回到二进制情况。我不喜欢将String转换为byte[]

我想知道是否有一个解决方案,不需要两个字段,并避免额外的字节缓冲区。

回答

0

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

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

相关问题