Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何生成唯一ID_Java_Mysql_Jsp_Servlets - Fatal编程技术网

Java 如何生成唯一ID

Java 如何生成唯一ID,java,mysql,jsp,servlets,Java,Mysql,Jsp,Servlets,我正在做一个项目,在这个项目中,我们使用JSP创建的注册表单存储学生信息。现在我想让每个学生都有一个唯一的ID。我该怎么做 我希望ID是名字、姓氏和一些数字(字母数字ID)的组合。有没有办法做到这一点?这个ID生成可以在数据库端完成,也可以在java中完成?每次我存储来自JSP页面的信息时,都应该为每个条目自动生成一个ID,该ID也存储在DB中 我正在使用mysql作为数据库。尝试将您的学生详细信息与uuid结合起来。下面是如何在java中生成uuid public static void ma

我正在做一个项目,在这个项目中,我们使用JSP创建的注册表单存储学生信息。现在我想让每个学生都有一个唯一的ID。我该怎么做

我希望ID是名字、姓氏和一些数字(字母数字ID)的组合。有没有办法做到这一点?这个ID生成可以在数据库端完成,也可以在java中完成?每次我存储来自JSP页面的信息时,都应该为每个条目自动生成一个ID,该ID也存储在DB中


我正在使用mysql作为数据库。

尝试将您的学生详细信息与uuid结合起来。下面是如何在java中生成uuid

public static void main(String[] args) {
    final String uuid = UUID.randomUUID().toString().replace("-", "");
    System.out.println("uuid = " + uuid);
}
像这样使用

String date = new SimpleDateFormat("yyyMMddHHmmssSS").format(new Date());
date变量包含唯一的datetime值,然后添加您的名字和姓氏,日期如下

String userId=firstName+lastName+date;

虽然有包括时间戳、随机数或UUID生成等方法,但在高度并发的环境中仍然有获得相同id的机会(尽管可以忽略不计)。我建议在unique key的某处添加DB生成的序列号,以及时间戳等其他内容,以确保您始终获得唯一的id。

当您获得输入数据时,请调用此函数

public String generateID(String f_name,String l_name) {
    String uniqueID = f_name.trim()+l_name.trim()+UUID.randomUUID().toString();
    return uniqueID;
}

在我看来,将这个函数的值设置为db

最好的方法是尝试使用当前时间戳以及名字和姓氏,它们总是唯一的。您如何持久化数据。如果使用RDBMS,则使用序列/标识/…作为唯一标识符。不要重新发明轮子。我认为你应该使用UUID。这很简单,也很简单,谢谢你的回答,在你回答之后,我通过这个方法,我在UUID的情况下看到的是,它会生成一个ID,比如:44e128a5-ac7a-4c9a-be4c-224b6bf81b20,但我认为这将很难记住,因为我希望我的用户可以使用生成的ID登录我的应用程序。@user8411341如何将到达日期和时间(最多秒)与客人姓名相结合?