Store BigInteger into Mysql

谁说我不能喝 提交于 2019-12-31 00:45:06

问题


Due to mathematica constraints I've to use the BigInteger class to represent values.

After some calculations I would like to store the result (given by 2x BigInteger instances) into Mysql...

What is the best datatype to store such object ?

I was thinking about using a Blob to store the binary format of those results (128 bits) ? But I would like to avoid unnecessary type conversions.


回答1:


I would recommend using a Blob and then the BigInteger(byte[] val) constructor to go from byte array to BigInteger, and the BigInteger#toByteArray() method for the other way.




回答2:


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




回答3:


In order to store bigInteger values in MySQL, we can store as strings:

  1. Convert biginteger to string:

    String s=bigint_value.toString();
    
  2. Store s in table field which is of type text; e.g. if we store s in a table named big_values having field big_value_as_string:

    CREATE TABLE big_values (big_value_as_string text);
    

    The value is now stored.

To retrieve we must:

  1. Retrieve string value from table:

    String bg = rs.getString("big_value_as_string");
    
  2. Convert the string to bigInteger type:

    BigInteger b = new BigInteger(bg);
    



回答4:


MySQL has a BIGINT data type as shown in: http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

You can try to use the BIGINT for that rather then doing conversion to binary formats which makes it whole lot more complex to my opinion.



来源:https://stackoverflow.com/questions/4374930/store-biginteger-into-mysql

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!