0

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

我看到以下选项:

  1. 定义两个字段 - 一个用于二进制文件的 BLOB 和另一个用于文本文件的 CLOB。然后我可以将PreparedStatement.setBytes(或PreparedStatement.setBinaryStream)用于 BLOB 和PreparedStatement.setStringCLOB。我不喜欢有两个领域。
  2. 用于String.getBytes()将给定转换Stringbyte[],从而回到二进制大小写。我不喜欢将 a 转换Stringbyte[].

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

4

1 回答 1

0

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

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

于 2013-03-03T21:25:19.157 回答