Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package harkkatyo;
- import java.sql.*;
- public class Kanta {
- private static Connection kanta;
- //tietokantayhteyden alustus
- public static void alusta() {
- try {
- Class.forName("org.postgresql.Driver").newInstance();
- kanta = DriverManager.getConnection("jdbc:postgresql://localhost:5432/Elokuvatietokanta", "postgres", "1two3four");
- }
- catch (Exception e) {
- System.out.println("Virhe tietokantakerroksessa: " + e);
- }
- }
- //sulkee tietokantayhteyden
- //ae: yhteys on alustettu
- public static void sulje(){
- try{
- kanta.close();
- }
- catch(SQLException e){
- System.out.println("Virhe tietokantakerroksessa: " + e);
- }
- }
- //tulostaa nayttelijan elokuvat, jotka kestävät yli annetun ajan
- public static void nayttelijanPidemmatElokuvat(Nayttelija nayttelija, int kesto){
- try{
- Statement lause = kanta.createStatement();
- String kysely = "SELECT DISTINCT nimi,kesto FROM nayttelee, elokuva"
- +" WHERE elokuva_nimi=nimi"
- +" AND etunimi='"+nayttelija.getEtunimi()
- +"' AND kesto>"+kesto+";";
- ResultSet tulos = lause.executeQuery(kysely);
- while(tulos.next()){
- System.out.println(tulos.getString("nimi") + " (" + tulos.getString("kesto") + "min)");
- }
- System.out.println();
- tulos.close();
- lause.close();
- } catch(Exception e){
- System.out.println("Virhe tietokantakerroksessa: " + e);
- }
- }
- //lisää tiedot näyttelijän palkkauksesta tietokantaan
- public static void palkkaaNayttelijaElokuvaan(Nayttelija nayttelija, Elokuva elokuva,double palkka){
- try{
- Statement lause = kanta.createStatement();
- String paivitys = "INSERT INTO nayttelee(etunimi,sukunimi,elokuva_nimi,vuosi,palkka)"
- +" VALUES"
- +" ('"+nayttelija.getEtunimi()+"','"+nayttelija.getSukunimi()+"','"+elokuva.getNimi()
- +"',"+elokuva.getVuosi()+","+palkka+");";
- lause.executeUpdate(paivitys);
- lause.close();
- } catch(Exception e){
- System.out.println("Virhe tietokantakerroksessa: " + e);
- }
- }
- //Tulostaa listan tiettyyn elokuvaan palkatuista näyttelijöistä
- public static void palkkaLista(Elokuva elokuva){
- try{
- Statement lause = kanta.createStatement();
- String kysely = "SELECT sukunimi,palkka"
- +" FROM nayttelee"
- +" WHERE elokuva_nimi="+"'"+elokuva.getNimi()+"';";
- ResultSet tulos = lause.executeQuery(kysely);
- System.out.println("Palkkalista:");
- while(tulos.next()){
- System.out.println(tulos.getString("sukunimi") +", "+ tulos.getString("palkka") + " dollaria");
- }
- System.out.println();
- tulos.close();
- lause.close();
- } catch(Exception e){
- System.out.println("Virhe tietokantakerroksessa: " + e);
- }
- }
- public static void uudemmatElokuvat(int vuosi){
- try{
- Statement lause = kanta.createStatement();
- String kysely = "SELECT DISTINCT nimi,vuosi FROM elokuva"
- +" WHERE vuosi>"+vuosi+";";
- ResultSet tulos = lause.executeQuery(kysely);
- while(tulos.next()){
- System.out.println(tulos.getString("nimi") + " (" + tulos.getString("vuosi") + ")");
- }
- System.out.println();
- tulos.close();
- lause.close();
- } catch(Exception e){
- System.out.println("Virhe tietokantakerroksessa: " + e);
- }
- }
- //main-metodi testaamista varten
- public static void main(String[] args) {
- //Alustetaan yhteys.
- Kanta.alusta();
- //vuoden 2010 jälkeen valmistuneet elokuvat
- Kanta.uudemmatElokuvat(2010);
- //emma watsonia ja angelina jolieta vastaavat näyttelijäoliot
- Nayttelija emma=new Nayttelija("emma","watson","lontoo");
- Nayttelija angelina=new Nayttelija("angelina","jolie","hollywood");
- //Kanta.nayttelijanPidemmatElokuvat(emma, 150);
- emma.pidemmatElokuvat(150);
- //elokuvaa terminator 7 vastaava elokuvaolio
- Elokuva byTheSea=new Elokuva("by the sea",2016,107);
- Kanta.palkkaLista(byTheSea);
- //Kanta.palkkaaNayttelijaElokuvaan(angelina, byTheSea, 10000000.00);
- byTheSea.palkkaaNayttelija(angelina, 10000000.00);
- Kanta.palkkaLista(byTheSea);
- //Suljetaan yhteys.
- Kanta.sulje();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement