Как добавить отпуск всем сотрудникам в списке в Java и MySQL - PullRequest
1 голос
/ 21 июня 2019

Я создаю простую систему начисления заработной платы для моего проекта за последний год. Я столкнулся с проблемой добавления отпуска сотруднику.Если я добавлю отпуск, он будет добавлен ко всем сотрудникам, принадлежащим компании. Но я не смог выполнить задачу, как я пытался, поэтому я написал код ниже.Например, если я выбрал 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 ]

2 голосов
/ 21 июня 2019

// Это код для получения данных из таблицы для определенного столбца.

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

Перед этим,

1, вам нужно добавить условие WHERE для полученияконкретный сотрудник в запросе pst1.

В противном случае

1 Вам необходимо установить значение session или значение hidden на предыдущей странице для этого сотрудника.

1.1 После этого вы получили конкретного сотрудника (из этого значения hidden или session), данные которого добавляются в таблицу.

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

, а затем добавьте employeeValue в запрос вставки, как показано ниже

pst.setString(1, employeeValue); // employeeValue is the your specific empno get from privious page
0 голосов
/ 21 июня 2019

Я предполагаю, что 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 для вашего варианта использования

Читайте также о получении значений набора результатов в Интернете, это поможет вам в ваших будущих вопросах

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...