我需要在MySQL DB中存储公钥。我有以下内容:
rsaModulus=rsaPk.getModulus();
方法getModulus()
返回BigInt。但是,当我使用preparedstatement
来在表中插入值时,我找不到相应的方法来执行此操作(即,类似于toString
,toInt
)。我需要检索此公钥并稍后进行一些数学计算。这就是为什么,我不认为将它存储为String是一个好主意。此外,toLong
不起作用,因为DB中的字段被定义为BigInt。有没有解决这个问题的方法?
答案 0 :(得分:0)
答案 1 :(得分:0)
文件(如密钥和证书)通常存储为咬合数组。 这可以通过blob collumn来完成。
Mysql doc显示了这些java类型和mysql类型的关系: http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-type-conversions.html
如果您能够将公钥作为byte [],请使用以下示例代码:
...
InputStream is = PapelServiceTest.class.getResourceAsStream("MY_FILE_HERE");
byte[] pkBytes = IOUtils.toByteArray(is);
String query = "INSERT INTO my_table (my_key_col) VALUES (?)";
PreparedStatement pstat = conn.prepareStatement(query);
pstat.setBytes(1, pkBytes);
pstat.execute();
...