Не следует добавлять существующую Empno в базу данных, используя java и mysql - PullRequest
0 голосов
/ 26 июня 2019

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

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 registation");
            ResultSet rs = pst1.executeQuery();
             String empNoValue1 = rs.getString("empno");
            PreparedStatement pst2 = con.prepareStatement("select empno from leaves");  
            String empNoValue = rs.getString("empno");
            ResultSet rs1 = pst2.executeQuery();

            while (rs.next()) {

                if(rs1.next())

                {
                    if(empNoValue1.equals(empNoValue))
                    {

                    }



                }
                else
                {

                pst = con.prepareStatement("insert into leaves(empno,casual,annual,medical,year)values(?,?,?,?,?)");
                pst.setString(1,empNoValue); // 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 голосов
/ 26 июня 2019

Если я правильно понял, вы хотите увеличить значения ID некоторых работников.

    Connection con = null;
    Statement stmt = null;
    int id = 0;

    try {
        Class.forName("org.postgresql.Driver");
        con = DriverManager.getConnection("url", "username", "pwd");
        con.setAutoCommit(true);
        stmt = con.createStatement();

        ResultSet rs = stmt.executeQuery("SELECT id FROM userlist ORDER BY id DESC LIMIT 1");

        while (rs.next()) {
            id = rs.getInt("id");
        }

        id++;
        stmt.execute("INSERT INTO userlist (id) VALUES (" + String.valueOf(id) + ");");
    } catch (Exception e) {
        e.printStackTrace();
    }

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

Я надеюсь, что смогу вам помочь

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