**この投稿の下にある編集を確認してください
私はbigdecimal、binary、stringに変換する必要のあるバイトバッファ[128ビット]を持っていますjdbcを使用しているときに対応するsqlマッピングです。ByteBufferからbigdecimal、binary、stringへ
これを行うために私が利用できるライブラリAPIはありますか?
BigDecimal bd = new BigDecimal(bigmyBuffer.asCharBuffer().toString());
これは私にはハックのようになります?私はString.valueofは()parameter.Soとしてバイト配列を取ることはありません。私はこのような何かをやっにもこだわっています参照してください。これを行うより良い方法がありますか、効率的な方法でjdbcの部分を行うことです。私は現在、それぞれのSQL列に挿入を行うことに焦点を当てています。
編集:
は私が間違っていた、たByteBufferがないだけでなく、数字のビットのすべての並べ替えました。だから今私は128ビットのバイトバッファを取る必要があり、2つのlongsに変換して、bigdecimalにマージして、数字が健全性を維持するようにする必要があります。だからこのようなもの: LongBuffer lbUUID = guid.asLongBuffer();
firstLong= lbUUID.get();
secondLong = lbUUID.get();
BigDecimal = firstLong + secondLong ;
ありがとうございます。
のthnx EboMike ..あなたは、あなたと私のアプローチで差分が何であるかを説明してくださいすることができます。..私はそれが内部的にどのように違うのか見ていません。最初のバイトバッファがcharsに変換され、それが文字列オブジェクトによってラップされていると思います。新しいString [bigmyBuffer]バイトを文字列に直接変換するか、 – codeObserver
一般に、オブジェクトの作成を避けたいとします。あなたのコードでは、一時的なjchararrayを作成し、それから一時的なStringを作成します(文字列が内部的にバッファーにjchararrayを使用できるかどうかはわかりません)。私の例では、少なくとも1つのステップをスキップします。 – EboMike
私はそれを認定しなければなりません - あなたがこれらの怠惰を行うならば、これはすべて重要です。そうでない場合、その差はごくわずかであり、理解しやすく維持しやすいコードを書くことが重要です。繰り返しますが、もっと適切な答えを実際に与えるために、私はこれがどのように使われているかについてより多くの文脈を必要とします。 – EboMike