如何在Java和mysql中为列表中的所有员工添加休假

时间:2019-06-21 06:34:55

标签: java

我正在为我的“最后一年”项目创建一个简单的薪资系统。我遇到了向员工添加休假的问题。如果我添加休假,它将添加到该公司的所有员工中。但是我无法完成我尝试执行的任务,所以我在代码下面编写了代码。 举个例子  如果我选择休假为20天。它在列表中添加了所有员工编号。

员工表

enter image description here

离开餐桌

enter image description here

enter image description here

我尝试过的代码

    String cas = txtcas.getValue().toString();
     String anu = txtanu.getValue().toString();
     String med = txtmed.getValue().toString();
     String year = txtyear.getText();

    try {
        int c;
        Class.forName("com.mysql.jdbc.Driver");
        con = DriverManager.getConnection("jdbc:mysql://localhost/spay","root","");
       PreparedStatement pst1 = con.prepareStatement("select empno from employee");
        ResultSet rs = pst1.executeQuery();

        ArrayList<String> empnos = new ArrayList<>();
        while (rs.next()) {
     empnos.add(rs.getString(1));

        pst = con.prepareStatement("insert into leaves(empno,casual,annual,address,medical,year)values(?,?,?,?,?)");
        pst.setString(1,) ); // employee no how to give here
        pst.setString(2, cas);
        pst.setString(3, anu);
         pst.setString(4, med);
        pst.setString(5, year);         
        pst.executeUpdate();
        JOptionPane.showMessageDialog(null,"Leave Insertedddddd");
         }

数据库输出看起来像这样

enter image description here

2 个答案:

答案 0 :(得分:2)

//这是从表中为特定列获取数据的代码。

String empNoValue; 
while (rs.next()) {
 empNoValue = rs.getString("empno"); // empno is the column name
}

在此之前,

1,您需要添加一些WHERE条件,以在查询pst1中获取特定员工。

否则,

1您需要从上一页为该员工设置session值或hidden值。

1.1之后,您从数据中添加了特定员工(从hiddensession值中获取数据)。

String employeeValue = hidden or session value // from privious page

然后将employeeValue添加到插入查询中,如下所示

pst.setString(1, employeeValue); // employeeValue is the your specific empno get from privious page

答案 1 :(得分:0)

我假设pst1在代码的较早位置和位置声明了

  

ResultSet rs = pst.executeQuery();

您实际上是在叫pst1而不是pst

对于所需的输出,您需要对结果集进行迭代,像这样

PreparedStatement pst1 = con.prepareStatement("select empno from employee");
ResultSet rs = pst1.executeQuery();
List<String> empnos = new ArrayList<>();
while (rs.next()) {
      empnos.add(rs.getString(1));
   }

,然后将arraylist用于您的用例

请阅读有关在互联网上获取结果集值的信息,这将帮助您解决以后的问题