package bazy.sqlite;

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

public class Odczyt1 {

	public static void main(String[] args) {
		// Chcemy zrobić tak jakby:
		// Connection c = new SQLiteConnection();
		
		// Robi się to za pomocą DriverManagera.
		// Ale aby to zadziałało, do projektu musimy dołączyć bibliotekę ze sterownikiem.
		try {
			Connection c = DriverManager.getConnection("jdbc:sqlite:hr.db");
			System.out.println("Udało się połączyć. c = " + c);
			
			// Do zadawania zapytań / wykonywania poleceń służą obiekty Statement (są różne rodzaje)
			PreparedStatement stmt = c.prepareStatement("SELECT * FROM employees");
			
			// Wyniki są zwraca jako obiekt ResultSet, który działa jak "kursor"
			ResultSet rs = stmt.executeQuery();
			System.out.println("Mam wyniki: " + rs);
			System.out.println();
			
			// Aby przejrzeć wszystkie zwrócone rekordy, piszemy taką pętlę:
			while(rs.next()) {
				// W tej wersji dane z poszczególnych pól odczytujemy wg numeru kolumny (numeracja od 1)
				String firstName = rs.getString(2);
				String lastName = rs.getString(3);
				int salary = rs.getInt(8);
				System.out.println(firstName + " " + lastName + " zarabia " + salary);
			}
			rs.close();
			stmt.close();
			c.close();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

}
