Существующий сотрудник нет Добавлена ​​снова проблема с использованием Java MySQL - PullRequest
0 голосов
/ 27 июня 2019

Я создаю простую систему начисления заработной платы сотрудникам. Я сталкиваюсь с проблемой, добавляя детали отпуска. детали отпуска были продублированы. Я ввожу информацию об отпуске для всех сотрудников, работающих в компании. Когда новый сотрудник присоединился, когда я ввел им информацию об отпуске. Существующий сотрудник также добавил снова. я показываю снимок экрана ниже. что происходит

покинуть стол

введите описание изображения здесь

стол регистрации

введите описание изображения здесь

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

код, который я попробовал, я прикрепил ниже.

   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");

1 Ответ

0 голосов
/ 27 июня 2019

Когда вы сделаете это select empno from registation, он выберет все empno из таблицы регистрации ... В ResultSet будут все пользователи ...

Поэтому, когда вы сделаете это,

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 registation ...

Например.чтобы выбрать только одного пользователя с помощью '001' empno:

SELECT empno FROM registation WHERE empno = '001';

Чтобы выбрать нескольких сотрудников, вы можете использовать что-то похожее, как показано ниже ...

SELECT empno FROM registation WHERE empno = '001' OR empno = '002' OR empno = '003'; 

Для этого выможете добавить столько OR empno = '00X' сзади, сколько хотите

или

Чтобы выбрать последнюю запись в таблице:

SELECT empno FROM registation ORDER BY id DESC LIMIT 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...