gpt4 book ai didi

java - 如何根据数据库中已输入的值自动增加employeeID?

转载 作者:行者123 更新时间:2023-11-29 11:24:49 24 4
gpt4 key购买 nike

我有一个 html 页面和一个 servlet,负责将新员工信息添加到数据库中。目前,如您所见,4 位数的员工 ID 是由该管理员手动输入的。有什么方法可以根据数据库中已有的值自动生成它吗?例如。如果有 ID 为 0001 的员工,那么 4 位员工 ID 将自动填写为 0002 或类似的内容?谢谢

NewEmployee.html 的部分代码

<form action ="NewEmployeeAccount" method = "post"> 

<table border ="1">
<tr>
<td>4 digit Employee ID:</td>
<td><input type = "text" name = "employee_id" pattern="[0-9]{4}" title="4 digit number: e.g. 1234" maxlength="4" required></td>
</tr>

<tr>
<td>First Name</td>
<td><input type = "text" name = "firstName" required></td>
</tr>

<tr>
<td>Last Name</td>
<td><input type = "text" name = "lastName" required></td>
</tr>
</table>
<br/><br/>
<input type = "submit" value = "Create Employee Account"/>
</form>

NewEmployeeAccount.java 的部分代码

try {

Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/payroll_system", "root", "");
PreparedStatement ps = con.prepareStatement("INSERT INTO payroll_system.employee_info(employeeID, FirstName, LastName) values(?,?,?)");
ps.setString(1, employee_id);
ps.setString(2, firstName);
ps.setString(3, lastName);

最佳答案

  • 按如下方式创建表。 auto_increment=1000 将告诉 MySQL 从 1000(四位数字)开始增加 employeeID 列。

    CREATE TABLE create table employee_info (
    employeeID int not null auto_increment,
    FirstName char(30) not null,
    LastName char(30) not null) auto_increment = 1000;
  • 创建表后,将初始化行插入表中,以便初始化计数:

    insert into employee_info (FirstName, LastName) values ('initializer', 'initilizer);
  • 从现在开始,在页面显示之前查询employeeID的最大值,加1并将其显示在页面的只读字段中:

    select max(employeeID) from employee_info
  • 提交页面时将新条目插入表中。这次将生成并保存您手动递增的值:

    insert into employee_info (FirstName, LastName) values ('newFirstName', 'newLastName');

这只是一种解决方法,并不是理想的解决方案。特别是,应该很好地记录表中的第一个条目,以便其他用户或您自己在几个月后知道您为什么使用它。

此解决方案基于您可以使用 1000 作为起始 ID 的假设。如果您想使用小于 1000 的数字,我不知道任何自动生成 key 的方法,除非您在代码中生成它。

关于java - 如何根据数据库中已输入的值自动增加employeeID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38411162/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com