package zajecia;

import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.JOptionPane;

public class WybranyJob_v1 {
	// Niech program wypisuje tylko tych pracowników, którzy mają podane job_id.
	// Wada tego rozwiązania: NISKA WYDAJNOŚĆ
	// Serwer odczytuje wszystkie rekordy z dysku
	// wszystkie rekordy są przesyłanie przez sieć
	// wszystkie rekordy są odbieranie i przeglądane przez program w Javie.

	public static void main(String[] args) {
		String url = "jdbc:postgresql://localhost/hr";
		try(Connection c = DriverManager.getConnection(url, "kurs", "abc123")) {
			
			String szukanyJob = JOptionPane.showInputDialog("Podaj kod stanowiska", "IT_PROG");
			
			try(PreparedStatement stmt = c.prepareStatement("SELECT * FROM employees")) {
				try(ResultSet rs = stmt.executeQuery()) {
					while(rs.next()) {
						String job = rs.getString("job_id");
						if(job.equalsIgnoreCase(szukanyJob)) {
							String imie = rs.getString("first_name");
							String nazwisko = rs.getString("last_name");
							BigDecimal salary = rs.getBigDecimal("salary");
							System.out.printf("%s %s (%s) zarabia %s\n", imie, nazwisko, job, salary);
						}
					}
				}
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

}
