Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package harjoitystyo;
- import java.sql.*;
- import java.util.*;
- public class HarjoitysTyo {
- public static void main(String[] args) throws SQLException {
- //Connection db = DriverManager.getConnection("jdbc:sqlite:tilaukset.db");
- //Statement s = db.createStatement();
- //Toiminnot t = new Toiminnot();
- Yhteys yhteys = new Yhteys();
- Scanner input = new Scanner(System.in);
- System.out.println("Toiminnot: "
- + "\n1: Luo tietokannat"
- + "\n2: Lisää paikka"
- + "\n3: Lisää asiakas"
- + "\n4: Lisää paketti"
- + "\n5: Lisää tapahtuma"
- + "\n6: Hae paketin tapahtumat"
- + "\n7: Hae asiakkaan paketit"
- + "\n8: Hae paikan tapahtumat tiettynä päivänä"
- + "\n9: Suorita tehokkuustesti");
- while (true) {
- System.out.println("Valitse toiminto (1-9): ");
- int number = input.nextInt();
- input.nextLine();
- switch (number) {
- case 1:
- yhteys.luoTietokanta();
- break;
- case 2:
- System.out.print("Anna paikan nimi: ");
- String paikkaNimi = input.nextLine();
- yhteys.lisaaPaikka(paikkaNimi);
- break;
- case 3:
- System.out.print("Anna asiakkaan nimi: ");
- String asiakasNimi = input.nextLine();
- yhteys.lisaaAsiakas(asiakasNimi);
- break;
- case 4:
- System.out.print("Anna paketin seurantakoodi: ");
- int seurantaKoodi = input.nextInt();
- input.nextLine();
- System.out.print("Anna asiakkaan nimi: ");
- asiakasNimi = input.nextLine();
- yhteys.lisaaPaketti(seurantaKoodi, asiakasNimi);
- break;
- case 5:
- System.out.print("Anna paketin seurantakoodi: ");
- seurantaKoodi = input.nextInt();
- input.nextLine();
- System.out.print("Anna tapahtuman paikka: ");
- String paikka = input.nextLine();
- System.out.print("Anna tapahtuman kuvaus: ");
- String kuvaus = input.nextLine();
- yhteys.lisaaTapahtuma(seurantaKoodi, paikka, kuvaus);
- break;
- case 6:
- System.out.print("Anna paketin seurantakoodi: ");
- int koodi = input.nextInt();
- input.nextLine();
- yhteys.haePaketinTapahtumat(koodi);
- break;
- case 7:
- System.out.println("Anna asiakkaan nimi: ");
- asiakasNimi = input.nextLine();
- yhteys.haeAsiakkaanPaketit(asiakasNimi);
- break;
- case 8:
- System.out.println("Anna paikan nimi: ");
- //lisää päivämäärä input jotenkin
- paikkaNimi = input.nextLine();
- }
- }
- }
- }
- _______________________________________________________________________________________________________________________________________
- package harjoitystyo;
- import java.sql.*;
- public class Yhteys {
- public Connection conn = null;
- public Statement statement = null;
- public PreparedStatement pstatement = null;
- public ResultSet rset = null;
- public Yhteys() throws SQLException {
- try {
- this.conn = DriverManager.getConnection("jdbc:sqlite:tilaukset.db");
- this.statement = conn.createStatement();
- statement.execute("PRAGMA foreign_keys = ON");
- } catch (SQLException e) {
- System.err.println(e.getMessage());
- System.exit(0);
- }
- }
- public void luoTietokanta() throws SQLException {
- try {
- statement.execute("CREATE TABLE Paikka ("
- + "id INTEGER PRIMARY KEY, "
- + "nimi TEXT UNIQUE)");
- statement.execute("CREATE TABLE Asiakas ("
- + "id INTEGER PRIMARY KEY, "
- + "nimi TEXT UNIQUE)");
- statement.execute("CREATE TABLE Paketti ("
- + "id INTEGER PRIMARY KEY, "
- + "seurantakoodi INTEGER UNIQUE, "
- + "asiakas_id INTEGER REFERENCES Asiakas)");
- statement.execute("CREATE TABLE Tapahtuma ("
- + "id INTEGER PRIMARY KEY, "
- + "kuvaus TEXT, "
- + "paketti_id INTEGER REFERENCES Paketti, "
- + "paikka_id INTEGER REFERENCES Paikka, "
- + "paiva DATETIME DEFAULT CURRENT_DATE, "
- + "aika DATETIME DEFAULT CURRENT_TIME)");
- System.out.println("Tietokanta luotu");
- } catch (SQLException e) {
- System.err.println("Tietokanta on jo luotu");
- }
- }
- public void lisaaPaikka(String nimi) throws SQLException {
- try {
- pstatement = conn.prepareStatement("INSERT INTO Paikka(nimi) VALUES (?)");
- pstatement.setString(1, nimi);
- pstatement.execute();
- } catch (SQLException e) {
- System.err.println(e.getMessage());
- }
- }
- public void lisaaAsiakas(String nimi) throws SQLException {
- try {
- pstatement = conn.prepareStatement("INSERT INTO Asiakas(nimi) VALUES (?)");
- pstatement.setString(1, nimi);
- pstatement.execute();
- } catch (SQLException e) {
- System.err.println(e.getMessage());
- }
- }
- public void lisaaPaketti(int koodi, String nimi) throws SQLException {
- try {
- pstatement = conn.prepareStatement("SELECT id FROM Asiakas WHERE nimi=?");
- pstatement.setString(1, nimi);
- rset = pstatement.executeQuery();
- int id = rset.getInt("id");
- pstatement = conn.prepareStatement("INSERT INTO Paketti(seurantakoodi, asiakas_id) VALUES (?, ?)");
- pstatement.setInt(1, koodi);
- pstatement.setInt(2, id);
- pstatement.executeUpdate();
- } catch (SQLException e) {
- System.err.println(e.getMessage());
- }
- }
- public void lisaaTapahtuma(int koodi, String paikka, String kuvaus) throws SQLException {
- try {
- pstatement = conn.prepareStatement("SELECT id FROM Paketti WHERE seurantakoodi=?");
- pstatement.setInt(1, koodi);
- rset = pstatement.executeQuery();
- int pakettiId = rset.getInt("id");
- pstatement = conn.prepareStatement("SELECT id FROM Paikka WHERE nimi=?");
- pstatement.setString(1, paikka);
- rset = pstatement.executeQuery();
- int paikkaId = rset.getInt("id");
- pstatement = conn.prepareStatement("INSERT INTO Tapahtuma(kuvaus, paketti_id, paikka_id) VALUES (?, ?, ?)");
- pstatement.setString(1, kuvaus);
- pstatement.setInt(2, pakettiId);
- pstatement.setInt(3, paikkaId);
- pstatement.executeUpdate();
- } catch (SQLException e) {
- System.err.println(e.getMessage());
- }
- }
- public void haePaketinTapahtumat(int koodi) throws SQLException {
- try {
- pstatement = conn.prepareStatement("SELECT id FROM Paketti WHERE seurantakoodi=?");
- pstatement.setInt(1, koodi);
- rset = pstatement.executeQuery();
- int pakettiId = rset.getInt("id");
- pstatement = conn.prepareStatement("SELECT * from Tapahtuma WHERE paketti_id=?");
- pstatement.setInt(1, pakettiId);
- rset = pstatement.executeQuery();
- //lisää looppiin paikan nimi jotenkin
- while (rset.next()) {
- String aika = rset.getString("aika");
- String paiva = rset.getString("paiva");
- String kuvaus = rset.getString("kuvaus");
- System.out.print(paiva + " | " + aika + ", " + kuvaus);
- System.out.println("");
- }
- } catch (SQLException e) {
- System.err.println(e.getMessage());
- }
- }
- public void haeAsiakkaanPaketit(String nimi) throws SQLException {
- try {
- pstatement = conn.prepareStatement("SELECT id FROM Asiakas WHERE nimi=?");
- pstatement.setString(1, nimi);
- rset = pstatement.executeQuery();
- int asiakasId = rset.getInt("id");
- pstatement = conn.prepareStatement("SELECT id from Paketti WHERE Asiakas_id=?");
- pstatement.setInt(1, asiakasId);
- rset = pstatement.executeQuery();
- int pakettiId = rset.getInt("id");
- pstatement = conn.prepareStatement("SELECT COUNT(*) as total from Tapahtuma WHERE Paketti_id=?");
- pstatement.setInt(1, pakettiId);
- rset = pstatement.executeQuery();
- int total = rset.getInt("total");
- //tällä hetkellä total antaa yhden paketin tapahtumien määrän kun tarkoitus olisi antaa yhden asiakkaan kaikkien pakettien tapahtumien määrän
- System.out.println(total);
- } catch (SQLException e) {
- System.err.println(e.getMessage());
- }
- }
- public void haePaikanTapahtumat(String nimi) throws SQLException {
- pstatement = conn.prepareStatement("SELECT id FROM Paikka WHERE nimi=?");
- pstatement.setString(1, nimi);
- rset = pstatement.executeQuery();
- int paikkaId = rset.getInt("id");
- //päivämäärä input jotenkin
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement