# 1 楼答案 生成随机数 Random rand = new Random(); int x = rand.nextInt(100000); 在存储到数据库之前,您必须检查号码是否已存储。 检查是否可以插入后 为什么要插入随机数作为唯一id?。您可以自动增加主键。然后,您可以轻松地为主键插入唯一的数字。而且不需要创建随机数
# 2 楼答案 你可以做相反的事情:在表上使用一个自动递增的主键,按照JDBC不要插入那个主键,但是之后查询MySQL生成的键,并发安全 try (PreparedStatement stm = conn.prepareStatement( "INSERT INTO moviesTbl (title, ...) VALUES(?, ? ...)")) { stm.setString(1, title); stm.setString(2, ...); ... int updateCount = stm.executeUpdate(); if (updateCount != 0) { try (ResultSet genKeys = stm.getGeneratedKeys()) { if (genKeys.next()) { // At most 1 record inserted // Normally only one key generated per record. int generatedId = genKeys.getInt(0); ... } } // Close result set. } } // Closes stm JDBC返回一个结果集,因为您可以插入多条记录。然后,每个记录可以生成几个密钥 存储UUID在MySQL中没有完全的支持;也许JDBC驱动程序已经得到了支持。 UUID是一个128位的数字、MaySQL二进制(16)或带有类似this的字符(36) CREATE FUNCTION `BINTOUUID`(UUID BINARY(16)) RETURNS char(36) BEGIN RETURN concat(HEX(LEFT(uuid,4)),'-', HEX(MID(uuid,5,2)),'-', HEX(MID(uuid,7,2)), '-',HEX(MID(uuid,9,2)),'-',HEX(RIGHT(uuid,6))); END 因为我认为你不是这个意思,所以我就到此为止
# 1 楼答案
生成随机数
在存储到数据库之前,您必须检查号码是否已存储。 检查是否可以插入后
为什么要插入随机数作为唯一id?。您可以自动增加主键。然后,您可以轻松地为主键插入唯一的数字。而且不需要创建随机数
# 2 楼答案
你可以做相反的事情:在表上使用一个自动递增的主键,按照JDBC不要插入那个主键,但是之后查询MySQL生成的键,并发安全
JDBC返回一个结果集,因为您可以插入多条记录。然后,每个记录可以生成几个密钥
存储UUID在MySQL中没有完全的支持;也许JDBC驱动程序已经得到了支持。 UUID是一个128位的数字、MaySQL二进制(16)或带有类似this的字符(36)
因为我认为你不是这个意思,所以我就到此为止