2010-12-07 22 views
4

mathematicaの制約のため、BigIntegerクラスを使用して値を表現しました。私は、MySQLに(2倍のBigIntegerインスタンスによって与えられた)結果を保存したいと思いますいくつかの計算後BigIntegerをMysqlに格納

...

、このようなオブジェクトを格納するための最良のデータ型は何ですか?

私はBlobを使用して結果(128ビット)のバイナリ形式を保存することを考えていましたか?しかし、私は不要な型変換を避けたいと思います。示すように

+0

bigintで十分ですか? (ちょうど8バイトです) – cristian

答えて

5

Blobを使用してからBigInteger(byte[] val)コンストラクタを使用して、バイト配列からBigIntegerに、そしてBigInteger#toByteArray()メソッドを別の方法で使用することをお勧めします。

+0

の比較があります。私はbigintegerを保存して比較したい。 – Jus12

+0

私が知る限り、mysqlは任意の大きな数値をサポートしていません。 – aioobe

-1

MySQLはBIGINTデータ型を持つ:http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

あなたは私の意見にそれが全体の多くは、より複雑になり、バイナリ形式への変換を行うことではなく、そのためにBIGINTを使用しようとすることができます。

+2

MySQLのBIGINTデータ型は私の価値を保持できません! 2^128> 18446744073709551615(最大BIGINT符号なし値)! – Kami

+0

これはもうBigIntegerではありません。これはBigIntegerの特定のサイズよりもはるかに優れています。 – thotheolh

+0

BigIntegerは異なるコンテキストで異なる意味を持ちます。質問には "java"タグが付けられます。ここで、BigIntegerは任意の精度を意味します。 – b0fh

6
MySQL Type  Java Type 
---------------------------------------- 
CHAR   String 
VARCHAR   String 
LONGVARCHAR  String 
NUMERIC   java.math.BigDecimal 
DECIMAL   java.math.BigDecimal 
BIT    boolean 
TINYINT   byte 
SMALLINT  short 
INTEGER   int 
BIGINT   long 
REAL   float 
FLOAT   double 
DOUBLE   double 
BINARY   byte [] 
VARBINARY  byte [] 
LONGVARBINARY byte [] 
DATE   java.sql.Date 
TIME   java.sql.Time 
TIMESTAMP  java.sql.Tiimestamp 

Reference

+0

孤独なリンクはそれ自体無意味であり、将来的にはターゲットリソースが生きているとは保証されていないので、[貧弱な答えとみなされます](http://stackoverflow.com/faq#deletion)です。 [こちらがこちらの回答の必須部分を含めることが望ましい](http://meta.stackexchange.com/q/8259)、参照のためのリンクを提供する。 – j0k

+0

更新済み - ありがとうございます。 – nicc777

1

MySQLでbigInteger値を格納するために、我々は文字列として保存することができます:

  1. stringbigintegerを変換します

    String s=bigint_value.toString(); 
    
  2. ストアsテーブルのフィールドはtextです。例えば我々は、フィールドbig_value_as_stringを持つbig_valuesという名前のテーブルにsを格納する場合:

    CREATE TABLE big_values (big_value_as_string text); 
    

    値は現在保存されています。

我々がしなければなりません取得するには:

  1. がテーブルから文字列値を取得します。

    String bg = rs.getString("big_value_as_string"); 
    
  2. bigInteger型に文字列を変換します

    BigInteger b = new BigInteger(bg); 
    
関連する問題