SHARE
TWEET

Untitled

a guest Feb 14th, 2020 110 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package harjoitystyo;
  2.  
  3. import java.sql.*;
  4. import java.util.*;
  5.  
  6. public class HarjoitysTyo {
  7.  
  8.     public static void main(String[] args) throws SQLException {
  9.         //Connection db = DriverManager.getConnection("jdbc:sqlite:tilaukset.db");
  10.         //Statement s = db.createStatement();
  11.         //Toiminnot t = new Toiminnot();
  12.  
  13.         Yhteys yhteys = new Yhteys();
  14.         Scanner input = new Scanner(System.in);
  15.  
  16.         System.out.println("Toiminnot: "
  17.                 + "\n1: Luo tietokannat"
  18.                 + "\n2: Lisää paikka"
  19.                 + "\n3: Lisää asiakas"
  20.                 + "\n4: Lisää paketti"
  21.                 + "\n5: Lisää tapahtuma"
  22.                 + "\n6: Hae paketin tapahtumat"
  23.                 + "\n7: Hae asiakkaan paketit"
  24.                 + "\n8: Hae paikan tapahtumat tiettynä päivänä"
  25.                 + "\n9: Suorita tehokkuustesti");
  26.  
  27.         while (true) {
  28.             System.out.println("Valitse toiminto (1-9): ");
  29.             int number = input.nextInt();
  30.             input.nextLine();
  31.             switch (number) {
  32.                 case 1:
  33.                     yhteys.luoTietokanta();
  34.                     break;
  35.  
  36.                 case 2:
  37.                     System.out.print("Anna paikan nimi: ");
  38.                     String paikkaNimi = input.nextLine();
  39.                     yhteys.lisaaPaikka(paikkaNimi);
  40.                     break;
  41.  
  42.                 case 3:
  43.                     System.out.print("Anna asiakkaan nimi: ");
  44.                     String asiakasNimi = input.nextLine();
  45.                     yhteys.lisaaAsiakas(asiakasNimi);
  46.                     break;
  47.  
  48.                 case 4:
  49.                     System.out.print("Anna paketin seurantakoodi: ");
  50.                     int seurantaKoodi = input.nextInt();
  51.                     input.nextLine();
  52.  
  53.                     System.out.print("Anna asiakkaan nimi: ");
  54.                     asiakasNimi = input.nextLine();
  55.                     yhteys.lisaaPaketti(seurantaKoodi, asiakasNimi);
  56.                     break;
  57.  
  58.                 case 5:
  59.                     System.out.print("Anna paketin seurantakoodi: ");
  60.                     seurantaKoodi = input.nextInt();
  61.                     input.nextLine();
  62.  
  63.                     System.out.print("Anna tapahtuman paikka: ");
  64.                     String paikka = input.nextLine();
  65.  
  66.                     System.out.print("Anna tapahtuman kuvaus: ");
  67.                     String kuvaus = input.nextLine();
  68.  
  69.                     yhteys.lisaaTapahtuma(seurantaKoodi, paikka, kuvaus);
  70.                     break;
  71.  
  72.                 case 6:
  73.                     System.out.print("Anna paketin seurantakoodi: ");
  74.                     int koodi = input.nextInt();
  75.                     input.nextLine();
  76.                     yhteys.haePaketinTapahtumat(koodi);
  77.                     break;
  78.                 case 7:
  79.                     System.out.println("Anna asiakkaan nimi: ");
  80.                     asiakasNimi = input.nextLine();
  81.                     yhteys.haeAsiakkaanPaketit(asiakasNimi);
  82.                     break;
  83.                 case 8:
  84.                     System.out.println("Anna paikan nimi: ");
  85.                     //lisää päivämäärä input jotenkin
  86.                     paikkaNimi = input.nextLine();
  87.                    
  88.  
  89.             }
  90.         }
  91.     }
  92.  
  93. }
  94. _______________________________________________________________________________________________________________________________________
  95. package harjoitystyo;
  96.  
  97. import java.sql.*;
  98.  
  99. public class Yhteys {
  100.  
  101.     public Connection conn = null;
  102.     public Statement statement = null;
  103.     public PreparedStatement pstatement = null;
  104.     public ResultSet rset = null;
  105.  
  106.     public Yhteys() throws SQLException {
  107.         try {
  108.             this.conn = DriverManager.getConnection("jdbc:sqlite:tilaukset.db");
  109.             this.statement = conn.createStatement();
  110.             statement.execute("PRAGMA foreign_keys = ON");
  111.         } catch (SQLException e) {
  112.             System.err.println(e.getMessage());
  113.             System.exit(0);
  114.         }
  115.  
  116.     }
  117.  
  118.     public void luoTietokanta() throws SQLException {
  119.         try {
  120.             statement.execute("CREATE TABLE Paikka ("
  121.                     + "id INTEGER PRIMARY KEY, "
  122.                     + "nimi TEXT UNIQUE)");
  123.             statement.execute("CREATE TABLE Asiakas ("
  124.                     + "id INTEGER PRIMARY KEY, "
  125.                     + "nimi TEXT UNIQUE)");
  126.             statement.execute("CREATE TABLE Paketti ("
  127.                     + "id INTEGER PRIMARY KEY, "
  128.                     + "seurantakoodi INTEGER UNIQUE, "
  129.                     + "asiakas_id INTEGER REFERENCES Asiakas)");
  130.             statement.execute("CREATE TABLE Tapahtuma ("
  131.                     + "id INTEGER PRIMARY KEY, "
  132.                     + "kuvaus TEXT, "
  133.                     + "paketti_id INTEGER REFERENCES Paketti, "
  134.                     + "paikka_id INTEGER REFERENCES Paikka, "
  135.                     + "paiva DATETIME DEFAULT CURRENT_DATE, "
  136.                     + "aika DATETIME DEFAULT CURRENT_TIME)");
  137.             System.out.println("Tietokanta luotu");
  138.         } catch (SQLException e) {
  139.             System.err.println("Tietokanta on jo luotu");
  140.         }
  141.     }
  142.  
  143.     public void lisaaPaikka(String nimi) throws SQLException {
  144.         try {
  145.             pstatement = conn.prepareStatement("INSERT INTO Paikka(nimi) VALUES (?)");
  146.             pstatement.setString(1, nimi);
  147.             pstatement.execute();
  148.         } catch (SQLException e) {
  149.             System.err.println(e.getMessage());
  150.         }
  151.     }
  152.  
  153.     public void lisaaAsiakas(String nimi) throws SQLException {
  154.         try {
  155.             pstatement = conn.prepareStatement("INSERT INTO Asiakas(nimi) VALUES (?)");
  156.             pstatement.setString(1, nimi);
  157.             pstatement.execute();
  158.         } catch (SQLException e) {
  159.             System.err.println(e.getMessage());
  160.         }
  161.     }
  162.  
  163.     public void lisaaPaketti(int koodi, String nimi) throws SQLException {
  164.         try {
  165.             pstatement = conn.prepareStatement("SELECT id FROM Asiakas WHERE nimi=?");
  166.             pstatement.setString(1, nimi);
  167.             rset = pstatement.executeQuery();
  168.             int id = rset.getInt("id");
  169.  
  170.             pstatement = conn.prepareStatement("INSERT INTO Paketti(seurantakoodi, asiakas_id) VALUES (?, ?)");
  171.             pstatement.setInt(1, koodi);
  172.             pstatement.setInt(2, id);
  173.             pstatement.executeUpdate();
  174.         } catch (SQLException e) {
  175.             System.err.println(e.getMessage());
  176.         }
  177.     }
  178.  
  179.     public void lisaaTapahtuma(int koodi, String paikka, String kuvaus) throws SQLException {
  180.         try {
  181.             pstatement = conn.prepareStatement("SELECT id FROM Paketti WHERE seurantakoodi=?");
  182.             pstatement.setInt(1, koodi);
  183.             rset = pstatement.executeQuery();
  184.             int pakettiId = rset.getInt("id");
  185.  
  186.             pstatement = conn.prepareStatement("SELECT id FROM Paikka WHERE nimi=?");
  187.             pstatement.setString(1, paikka);
  188.             rset = pstatement.executeQuery();
  189.             int paikkaId = rset.getInt("id");
  190.  
  191.             pstatement = conn.prepareStatement("INSERT INTO Tapahtuma(kuvaus, paketti_id, paikka_id) VALUES (?, ?, ?)");
  192.             pstatement.setString(1, kuvaus);
  193.             pstatement.setInt(2, pakettiId);
  194.             pstatement.setInt(3, paikkaId);
  195.             pstatement.executeUpdate();
  196.  
  197.         } catch (SQLException e) {
  198.             System.err.println(e.getMessage());
  199.         }
  200.  
  201.     }
  202.  
  203.     public void haePaketinTapahtumat(int koodi) throws SQLException {
  204.         try {
  205.             pstatement = conn.prepareStatement("SELECT id FROM Paketti WHERE seurantakoodi=?");
  206.             pstatement.setInt(1, koodi);
  207.             rset = pstatement.executeQuery();
  208.             int pakettiId = rset.getInt("id");
  209.  
  210.             pstatement = conn.prepareStatement("SELECT * from Tapahtuma WHERE paketti_id=?");
  211.             pstatement.setInt(1, pakettiId);
  212.             rset = pstatement.executeQuery();
  213.  
  214.             //lisää looppiin paikan nimi jotenkin        
  215.             while (rset.next()) {
  216.                 String aika = rset.getString("aika");
  217.                 String paiva = rset.getString("paiva");
  218.                 String kuvaus = rset.getString("kuvaus");
  219.  
  220.                 System.out.print(paiva + " | " + aika + ", " + kuvaus);
  221.                 System.out.println("");
  222.             }
  223.         } catch (SQLException e) {
  224.             System.err.println(e.getMessage());
  225.         }
  226.     }
  227.  
  228.     public void haeAsiakkaanPaketit(String nimi) throws SQLException {
  229.         try {
  230.             pstatement = conn.prepareStatement("SELECT id FROM Asiakas WHERE nimi=?");
  231.             pstatement.setString(1, nimi);
  232.             rset = pstatement.executeQuery();
  233.             int asiakasId = rset.getInt("id");
  234.  
  235.             pstatement = conn.prepareStatement("SELECT id from Paketti WHERE Asiakas_id=?");
  236.             pstatement.setInt(1, asiakasId);
  237.             rset = pstatement.executeQuery();
  238.             int pakettiId = rset.getInt("id");
  239.  
  240.             pstatement = conn.prepareStatement("SELECT COUNT(*) as total from Tapahtuma WHERE Paketti_id=?");
  241.             pstatement.setInt(1, pakettiId);
  242.             rset = pstatement.executeQuery();
  243.             int total = rset.getInt("total");
  244.             //tällä hetkellä total antaa yhden paketin tapahtumien määrän kun tarkoitus olisi antaa yhden asiakkaan kaikkien pakettien tapahtumien määrän
  245.             System.out.println(total);
  246.         } catch (SQLException e) {
  247.             System.err.println(e.getMessage());
  248.         }
  249.     }
  250.  
  251.     public void haePaikanTapahtumat(String nimi) throws SQLException {
  252.         pstatement = conn.prepareStatement("SELECT id FROM Paikka WHERE nimi=?");
  253.         pstatement.setString(1, nimi);
  254.         rset = pstatement.executeQuery();
  255.         int paikkaId = rset.getInt("id");
  256.         //päivämäärä input jotenkin
  257.     }
  258. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top