我需要为 Mysql 表中的每一行分配一个随机但唯一的 ID。如果行包含相同的值,则 ID 应该相同。
即,如果第一行包含 [hi,hello,bye],第二行包含 [gg,hello,bye],第三行包含 [hi,hello,bye],则第一行和第三行应生成相同的 ID,第二行应生成相同的 ID行应该生成不同的 ID。
提前致谢。
最佳答案
MD5 哈希可以工作。下面是需要更新的快速/脏代码,但证明了这个概念。
System.out.println("row1=" + test1 + ":" + tst1.getHash(test1));
System.out.println("row2=" + test2 + ":" + tst1.getHash(test2));
System.out.println("row3=" + test3 + ":" + tst1.getHash(test3));
private String getHash(String inputStr){
try{
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(inputStr.getBytes());
byte byteData[] = md.digest();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < byteData.length; i++) {
sb.append(Integer.toString((byteData[i] & 0xff) + 0x100, 16).substring(1));
}
return sb.toString();
}
catch(Exception e)
{
e.printStackTrace();
return null;
}
}
row1=hi,hello,bye:cfe40e96aa052a484208c2aefb6f39bb
row2=gg,hello,bye:f652785f0e214507e6aea44ecd3ffb7a
row3=hi,hello,bye:cfe40e96aa052a484208c2aefb6f39bb
关于java - 我需要为 mysql 表的每一行分配一个随机但唯一的 ID。如果行包含相同的值,则 ID 应该相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15216345/