Advertisement
Guest User

Kanta

a guest
May 27th, 2016
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.12 KB | None | 0 0
  1. package harkkatyo;
  2.  
  3. import java.sql.*;
  4.  
  5. public class Kanta {
  6. private static Connection kanta;
  7.  
  8. //tietokantayhteyden alustus
  9. public static void alusta() {
  10. try {
  11. Class.forName("org.postgresql.Driver").newInstance();
  12. kanta = DriverManager.getConnection("jdbc:postgresql://localhost:5432/Elokuvatietokanta", "postgres", "1two3four");
  13. }
  14. catch (Exception e) {
  15. System.out.println("Virhe tietokantakerroksessa: " + e);
  16. }
  17. }
  18. //sulkee tietokantayhteyden
  19. //ae: yhteys on alustettu
  20. public static void sulje(){
  21. try{
  22. kanta.close();
  23. }
  24. catch(SQLException e){
  25. System.out.println("Virhe tietokantakerroksessa: " + e);
  26. }
  27. }
  28.  
  29.  
  30.  
  31. //tulostaa nayttelijan elokuvat, jotka kestävät yli annetun ajan
  32. public static void nayttelijanPidemmatElokuvat(Nayttelija nayttelija, int kesto){
  33. try{
  34. Statement lause = kanta.createStatement();
  35. String kysely = "SELECT DISTINCT nimi,kesto FROM nayttelee, elokuva"
  36. +" WHERE elokuva_nimi=nimi"
  37. +" AND etunimi='"+nayttelija.getEtunimi()
  38. +"' AND kesto>"+kesto+";";
  39. ResultSet tulos = lause.executeQuery(kysely);
  40. while(tulos.next()){
  41. System.out.println(tulos.getString("nimi") + " (" + tulos.getString("kesto") + "min)");
  42. }
  43. System.out.println();
  44. tulos.close();
  45. lause.close();
  46. } catch(Exception e){
  47. System.out.println("Virhe tietokantakerroksessa: " + e);
  48. }
  49. }
  50.  
  51. //lisää tiedot näyttelijän palkkauksesta tietokantaan
  52. public static void palkkaaNayttelijaElokuvaan(Nayttelija nayttelija, Elokuva elokuva,double palkka){
  53. try{
  54. Statement lause = kanta.createStatement();
  55. String paivitys = "INSERT INTO nayttelee(etunimi,sukunimi,elokuva_nimi,vuosi,palkka)"
  56. +" VALUES"
  57. +" ('"+nayttelija.getEtunimi()+"','"+nayttelija.getSukunimi()+"','"+elokuva.getNimi()
  58. +"',"+elokuva.getVuosi()+","+palkka+");";
  59. lause.executeUpdate(paivitys);
  60. lause.close();
  61. } catch(Exception e){
  62. System.out.println("Virhe tietokantakerroksessa: " + e);
  63. }
  64. }
  65.  
  66.  
  67. //Tulostaa listan tiettyyn elokuvaan palkatuista näyttelijöistä
  68. public static void palkkaLista(Elokuva elokuva){
  69. try{
  70. Statement lause = kanta.createStatement();
  71. String kysely = "SELECT sukunimi,palkka"
  72. +" FROM nayttelee"
  73. +" WHERE elokuva_nimi="+"'"+elokuva.getNimi()+"';";
  74. ResultSet tulos = lause.executeQuery(kysely);
  75. System.out.println("Palkkalista:");
  76. while(tulos.next()){
  77. System.out.println(tulos.getString("sukunimi") +", "+ tulos.getString("palkka") + " dollaria");
  78. }
  79. System.out.println();
  80. tulos.close();
  81. lause.close();
  82. } catch(Exception e){
  83. System.out.println("Virhe tietokantakerroksessa: " + e);
  84. }
  85. }
  86.  
  87. public static void uudemmatElokuvat(int vuosi){
  88. try{
  89. Statement lause = kanta.createStatement();
  90. String kysely = "SELECT DISTINCT nimi,vuosi FROM elokuva"
  91. +" WHERE vuosi>"+vuosi+";";
  92. ResultSet tulos = lause.executeQuery(kysely);
  93. while(tulos.next()){
  94. System.out.println(tulos.getString("nimi") + " (" + tulos.getString("vuosi") + ")");
  95. }
  96. System.out.println();
  97. tulos.close();
  98. lause.close();
  99. } catch(Exception e){
  100. System.out.println("Virhe tietokantakerroksessa: " + e);
  101. }
  102. }
  103.  
  104. //main-metodi testaamista varten
  105. public static void main(String[] args) {
  106.  
  107. //Alustetaan yhteys.
  108. Kanta.alusta();
  109.  
  110. //vuoden 2010 jälkeen valmistuneet elokuvat
  111. Kanta.uudemmatElokuvat(2010);
  112.  
  113. //emma watsonia ja angelina jolieta vastaavat näyttelijäoliot
  114. Nayttelija emma=new Nayttelija("emma","watson","lontoo");
  115. Nayttelija angelina=new Nayttelija("angelina","jolie","hollywood");
  116.  
  117.  
  118. //Kanta.nayttelijanPidemmatElokuvat(emma, 150);
  119. emma.pidemmatElokuvat(150);
  120.  
  121. //elokuvaa terminator 7 vastaava elokuvaolio
  122. Elokuva byTheSea=new Elokuva("by the sea",2016,107);
  123.  
  124. Kanta.palkkaLista(byTheSea);
  125.  
  126. //Kanta.palkkaaNayttelijaElokuvaan(angelina, byTheSea, 10000000.00);
  127. byTheSea.palkkaaNayttelija(angelina, 10000000.00);
  128.  
  129. Kanta.palkkaLista(byTheSea);
  130.  
  131. //Suljetaan yhteys.
  132. Kanta.sulje();
  133. }
  134.  
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement