我正在为自己构建一个小项目,每次Employee创建a 时,他们都会获得一个 ID。
此 Id 是通过查找ArrayList的.size()生成的。
//Creating the Employee Id
int employeeID = listEmployee.size() +1;
Run Code Online (Sandbox Code Playgroud)
我知道这是一个坏主意,因为在删除员工时,Id 将开始复制。
这是我在创建员工时使用的功能
public void addHiredEmployee() {
Scanner kb = new Scanner(System.in);
System.out.println("Enter Name: ");
String nameEmployee = kb.nextLine();
//Creating Id for the employee by getting the last employee in the list
//getting their Id and adding 1 to it
Employee lastEmployee = listEmployee.get(listEmployee.size() -1);
int idCreation = lastEmployee.getEmployeeId();
int employeeID = idCreation + 1;
System.out.println("Enter password");
String employeePassword = kb.nextLine();
System.out.println("Your log-in Id is: " + employeeID);
Employee employeeHired = new Employee(nameEmployee, employeeID,
employeePassword);
listEmployee.add(employeeHired);
kb.close();
listEmployee.toString();
}
Run Code Online (Sandbox Code Playgroud)
我知道使用 UUID,但由于EmployeeId 将用于登录,我真的不能指望有人输入完整的 UUID。
有没有一种简单的方法来创建一个随机 Id 或者我什至可以使用 UUID 的最后 4 个字符来进行登录,我该如何实现选择最后 4 个字符?
这取决于您需要 ID 的用途。通常,技术 ID 在系统的整个生命周期中应该是唯一的。对于数据库,这些通常是自动递增的数值。他们不是计算计数,而是存储最后使用的 id 并增加它。
对于登录等,您可能需要使用其他内容,例如用户名。这通常称为功能 ID 或业务 ID。它仍然是独一无二的,但要求不那么严格。例如,它可以重复使用。
如果您需要在高度并行的环境中创建 ID,UUID 是一个好主意。虽然它们可以在没有同步的情况下并行生成,但它们还有其他缺点,例如难以索引、长度和存储要求等。
| 归档时间: |
|
| 查看次数: |
97 次 |
| 最近记录: |