package bazy.a_poczatek;

import org.apache.commons.lang3.StringUtils;

import javax.swing.*;
import java.math.BigDecimal;
import java.sql.*;

public class OdczytajNiektoreRekordy1 {
// wersja 1 - mało wydajna, bo program ściąga dane całej tabeli i dopiero potem sprawdza if-em
// tak napisany program nie skorzysta w żaden sposób z indeksów zdefiniowanych w bazie danych (nawet, gdyby były)

    public static void main(String[] args) {
        try (Connection c = DriverManager.getConnection(
                "jdbc:postgresql://vps497901.ovh.net:5432/hr",
                "kurs",
                "vps497901_abc123")) {

            String szukanyJob = JOptionPane.showInputDialog("Podaj kod stanowiska", "IT_PROG");
            // Wypisz tylko pracowników, którzy mają takie job_id

            try(PreparedStatement stmt = c.prepareStatement("SELECT * FROM employees")) {
                try(ResultSet rs = stmt.executeQuery()) {
                    while (rs.next()) {
                        int id = rs.getInt(1);
                        String firstName = rs.getString(2);
                        String lastName = rs.getString(3);
                        String job = rs.getString("job_id");
                        BigDecimal salary = rs.getBigDecimal("salary");
                        if(StringUtils.equalsIgnoreCase(job, szukanyJob)) {
                            System.out.printf("%d: %s %s (%s) zarabia %s\n", id, firstName, lastName, job, salary);
                        }
                    }
                }
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
