Skip to content
Snippets Groups Projects
Main.java 2.84 KiB
Newer Older
Vilho Kivihalme's avatar
Vilho Kivihalme committed
package fi.utu.tko2116;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.*;
import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws IOException {

        //muodostetaan tietokantayhteys
        Connection conn = null;
        try {
            conn = getConnection();
        } catch (SQLException e) {
            System.out.println("Ei voida jatkaa, tietokantayhteys ei toiminut:");
            throw new RuntimeException(e);
        }



        Scanner lukija = new Scanner(System.in);
        System.out.println("Syötä haettavien henkilöiden minimi-ikä:");
        int min = Integer.parseInt(lukija.nextLine());
        System.out.println("Syötä haettavien henkilöiden maksimi-ikä:");
        int max = Integer.parseInt(lukija.nextLine());

        ArrayList<Henkilo> henkilot = new ArrayList<>();

        System.out.println("Haetaan henkilöt tietokannasta...");

        // kysely
        String s = "SELECT * FROM henkilo WHERE ika >= ? AND ika <= ?";

        try (PreparedStatement c = conn.prepareStatement(s)) {
            c.setInt(1,min);
            c.setInt(2,max);
            ResultSet results =  c.executeQuery();

            // luetaan henkilö kerrallaan
            while(results.next()){
                String nimi = results.getString(1);
                int ika = results.getInt(2);
                Henkilo h = new Henkilo(nimi,ika);
                henkilot.add(h);
            }

        } catch (SQLException e) {
            e.printStackTrace();
        }

        System.out.println("Löydettiin seuraavat henkilöt:");
        for(Henkilo h : henkilot){
            System.out.println(h);
        }
        if(henkilot.size()==0){
            System.out.println("Ei henkilöitä. Kokeile suurempaa ikähaarukkaa!");
        }

        File f = new File("tulokset.txt");
        FileWriter fw = new FileWriter(f);
        for(Henkilo h : henkilot){
          fw.write(h.toString());
          fw.write("\n");
        }
        fw.close();
        System.out.println("Tiedosto on sijainnissa " +f.getAbsolutePath());
        System.out.println("Varmista että se on projetkin hakemistossa!");
    }

    public static Connection getConnection() throws SQLException {


        // db parameters
        String url = "jdbc:sqlite:viikko3tietokanta.db";
        // create a connection to the database
        Connection conn = DriverManager.getConnection(url);

        System.out.println("Tietokantayhteys ok");
        return conn;

    }
}


class Henkilo{
    private String nimi;
    private int ika;

    public Henkilo(String nimi,int ika) {
        this.nimi = nimi;
        this.ika = ika;
    }

    @Override
    public String toString() {
        return "Henkilo{" +
                "nimi='" + nimi + '\'' +
                "ikä="+ika+"}'";
    }
}