2012-03-04 2 views
1

query()exec()rawQuery()方法は、パラメータにのみStringの結合を可能にします。ストリングではないパラメーターをどのようにバインドするのですか?具体的には、where節に(小)ブロブであるパラメータが含まれている文を実行したいと考えています。どのようにバインドするのですか?結合のint、longとブロブ(バイト[])

ありがとうございます。

答えて

0

タイプをStringに変換してから、いずれかの方法に渡します。

intを変換するには、静的メソッドInteger.toString(int)を使用します。同様に、longを変換するには、静的メソッドLong.toString(long)を使用します。

byte[]の場合は、String(byte[])またはString(byte[], Charset)コンストラクタを使用できます。適切で一貫したエンコーディングを使用するようにする必要があります。

+0

ありがとう。ちょっとした説明:「適切かつ一貫性のあるエンコーディングを使用するように」提案するとき、私が文字セットを選択してハードコードして、その文字セットがデフォルトの文字セットが異なる可能性のあるすべてのデバイスに正しくバインドされるようにすることをお勧めしますか?この場合、どこでもUTF-8を選択できますか? –

+0

はい、一貫して、この変換を実行するたびに同じエンコーディングが使用されるようにする必要があるかもしれません。すべてのバイトシーケンスが有効なUTF-8エンコーディングであるわけではないので、UTF-8は良い選択ではありません。 –

+0

要件に応じて、[base64](http://en.wikipedia.org/wiki/Base64)もチェックしてください。 –

関連する問題