将BigInteger存储到Mysql中

时间:2010-12-07 09:03:11

标签: java mysql database biginteger

由于mathematica约束,我将使用BigInteger类来表示值。

经过一些计算后,我想将结果(由2x BigInteger实例给出)存储到Mysql中......

存储此类对象的最佳数据类型是什么?

我在考虑使用Blob存储这些结果的二进制格式(128位)?但我想避免不必要的类型转换。

4 个答案:

答案 0 :(得分:7)

我建议使用Blob然后使用BigInteger(byte[] val)构造函数从字节数组转到BigInteger,并使用BigInteger#toByteArray()方法用于其他方式。

答案 1 :(得分:5)

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

答案 2 :(得分:1)

为了在MySQL中存储bigInteger值,我们可以存储为字符串:

  1. biginteger转换为string

    String s=bigint_value.toString();
    
  2. s存储在text类型的表字段中;例如如果我们将s存储在名为big_values且具有字段big_value_as_string

    的表中
    CREATE TABLE big_values (big_value_as_string text);
    

    现在存储该值。

  3. 要检索我们必须:

    1. 从表中检索字符串值:

      String bg = rs.getString("big_value_as_string");
      
    2. 将字符串转换为bigInteger类型:

      BigInteger b = new BigInteger(bg);
      

答案 3 :(得分:-1)

MySQL有一个BIGINT数据类型,如:http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

您可以尝试使用BIGINT而不是转换为二进制格式,这使我的意见变得更加复杂。