现有员工使用java mysql不会再出现问题
我正在创建一个简单的员工休假工资系统。我在添加休假详细信息时遇到问题。休假详情重复。我正在为在公司工作的所有员工输入休假信息。当新员工加入时,我向他们输入休假信息。现有员工也再次添加。我显示下面的屏幕截图。发生了什么 离开桌子 登记表 当新员工仅加入时,仅添加新员工。不应再次添加现有员工。到目前为止我所尝试的,我附在下面现有员工使用java mysql不会再出现问题,java,Java,我正在创建一个简单的员工休假工资系统。我在添加休假详细信息时遇到问题。休假详情重复。我正在为在公司工作的所有员工输入休假信息。当新员工加入时,我向他们输入休假信息。现有员工也再次添加。我显示下面的屏幕截图。发生了什么 离开桌子 登记表 当新员工仅加入时,仅添加新员工。不应再次添加现有员工。到目前为止我所尝试的,我附在下面 Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jd
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost/spay","root","");
con.setAutoCommit(true);
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select empno from registation");
while (rs.next()) {
String empvalue = rs.getString("empno");
pst = con.prepareStatement("insert into leaves(empno,casual,annual,medical,year)values(?,?,?,?,?)");
pst.setString(1,empvalue); // employee no how to give
pst.setString(2, cas);
pst.setString(3, anu);
pst.setString(4, med);
pst.setString(5, year);
pst.executeUpdate();
}
JOptionPane.showMessageDialog(null,"Leave Insertedddddd");
我试过的代码附在下面
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost/spay","root","");
con.setAutoCommit(true);
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select empno from registation");
while (rs.next()) {
String empvalue = rs.getString("empno");
pst = con.prepareStatement("insert into leaves(empno,casual,annual,medical,year)values(?,?,?,?,?)");
pst.setString(1,empvalue); // employee no how to give
pst.setString(2, cas);
pst.setString(3, anu);
pst.setString(4, med);
pst.setString(5, year);
pst.executeUpdate();
}
JOptionPane.showMessageDialog(null,"Leave Insertedddddd");
执行此操作时,从注册表中选择empno,它将从注册表中选择所有empno。。。结果集将包含其中的所有用户
所以当你这么做的时候
while (rs.next()) { //rs now has all the employee
String empvalue = rs.getString("empno");
pst = con.prepareStatement("insert into leaves(empno,casual,annual,medical,year)values(?,?,?,?,?)");
pst.setString(1,empvalue); // employee no how to give
pst.setString(2, cas);
pst.setString(3, anu);
pst.setString(4, med);
pst.setString(5, year);
pst.executeUpdate();
}
它再次添加所有员工
您可以做的是,在select empno from注册表中放置一个条件语句
例如,仅选择一个empno为“001”的用户:
SELECT empno FROM registation WHERE empno = '001';
要选择多个员工,您可以使用“执行以下类似操作…”
SELECT empno FROM registation WHERE empno = '001' OR empno = '002' OR empno = '003';
为此,您可以根据需要在后面附加任意多个或empno='00X'
或
要选择表中的最后一项,请执行以下操作:
SELECT empno FROM registation ORDER BY id DESC LIMIT 1;
A请避免屏幕截图。相反,试着用格式很好的文本表达你想表达的意思。。。我完全不知道你要什么。你期望这里的人能如何帮助你?你从注册处得到了所有的帮助。while循环将为注册中的每一行的叶子插入一个新行。我认为您必须为该查询添加一些条件。类似于从注册中选择empno,名称类似于?你能写下来吗先生如何添加条件先生我试过这段代码,但如果有新的3名员工添加,则只添加最后一个插入rcord这是个问题。按id DESC LIMIT 1显示上次从注册顺序中选择的empno;