package bazy.postgresql;

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

public class Zapytanie {

	public static void main(String[] args) {
		final String url = "jdbc:postgresql://vps497901.ovh.net:5432/hr";
		final String pwd = "vps497901_abc123";
		
		// nie tylko Connection, ale także inne obiekty bazodanowe są "Zasobami", które należy zwalniać
		// gdy zamykamy Connection, wszystkie rzeczy są zwalniane,
		// ale często pisze się programy, w których jedno połączenie jest uzywane przez dłuższy czas
		try(Connection c = DriverManager.getConnection(url, "hr", pwd)) {

			try(PreparedStatement stmt = c.prepareStatement("SELECT * FROM employees")) {
				
				try(ResultSet rs = stmt.executeQuery()) {
					System.out.println("rs: " + rs);
					
					// przechodzimy do nastepnego rekordu dopóki taki rekord istnieje
					while(rs.next()) {
						// bezpośrednio z ResultSet odczytujemy wartości poszczególnych kolumn biężacego wiersza

						// wartości z kolumn można czytać wg numeru kolumny (numeracja od 1)
						// String imie = rs.getString(2);
						
						// można też używać nazw kolumn (lub aliasów)
						String imie = rs.getString("first_name");
						String nazwisko = rs.getString("last_name");
						String jobId = rs.getString("job_id");
						int id = rs.getInt("employee_id");
						BigDecimal pensja = rs.getBigDecimal("salary");
						
						System.out.println(imie + " " + nazwisko + " (" + jobId + ") zarabia " + pensja);
					}
				}
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

}
