将UUID存储在mysql数据库表中

use*_*245 2 java mysql uuid jdbc

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

    expenseUUID varchar(32) primary key ,
Run Code Online (Sandbox Code Playgroud)

在本专栏中,我希望保存UUID.我生成的UUID如下:

  String expenseUUID = UUID.randomUUID().toString();
  expenseUUID.replaceAll("-", "");
Run Code Online (Sandbox Code Playgroud)

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

Data truncation: Data too long for column 'expenseUUID' 
Run Code Online (Sandbox Code Playgroud)

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

zes*_*ssx 8

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

目前:

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

更正:

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