将BigInteger存储到Mysql中

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

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

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

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

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

 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 

参考

为了在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); 

    现在存储该值。

要检索我们必须:

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

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

     BigInteger b = new BigInteger(bg); 

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

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