0

byte[]ファイルを DB に格納するための 2つの API 関数を提供したいと思いInputStreamますString。そのような API をどのように実装するのだろうか。

次のオプションが表示されます。

  1. バイナリ ファイル用の BLOB とテキスト ファイル用の CLOB の 2 つのフィールドを定義します。次に、BLOB とCLOBにPreparedStatement.setBytes(または) を使用できます。フィールドが 2 つあるのは好きではありません。PreparedStatement.setBinaryStreamPreparedStatement.setString
  2. 指定されString.getBytes()た を に変換するために使用し、2 進数のケースに戻します。aをに変換する必要がありません。Stringbyte[]Stringbyte[]

2 つのフィールドを必要とせず、余分なバイト バッファーを回避するソリューションがあるかどうか疑問に思っていました。

4

1 に答える 1

0

Java文字列とClobはUnicodeであり、2バイト文字として格納されます。したがって、これらの値をbyte []またはBlobに格納する場合は、何らかの変換が必要です。

したがって、最善のアプローチは、2つの別々のフィールドを使用することです。1つはBLOB用で、もう1つはCLOB値用です。

于 2013-03-03T21:25:19.157 に答える