将UUID存储在mysql数据库表中

时间:2014-07-02 08:07:45

标签: java mysql jdbc uuid

将UUID存储到mysql表时,我遇到了一个特殊的问题。 我有一个包含列声明的表:

    expenseUUID varchar(32) primary key ,

在本专栏中我希望保存UUID。我按如下方式生成了UUID:

  String expenseUUID = UUID.randomUUID().toString();
  expenseUUID.replaceAll("-", "");

但是当我尝试使用JDBC插入expenseUUID时,我收到一条错误消息:

Data truncation: Data too long for column 'expenseUUID' 

我该怎么做才能解决这个问题?我被卡住了。我无法弄清楚出了什么问题。

1 个答案:

答案 0 :(得分:8)

您错过了将replaceAll结果重新分配给expenseUUID var。然后你的var仍然包含36个字符串。

当前:

String expenseUUID = UUID.randomUUID().toString();
expenseUUID.replaceAll("-", "");
System.out.print(expenseUUID); // 9e73f8a4-dfde-438e-9eec-ac4e94817b6b

更正:

String expenseUUID = UUID.randomUUID().toString();
expenseUUID = expenseUUID.replaceAll("-", "");
System.out.print(expenseUUID); // 0757c2666e934e2eb303df68bb3c9761