1 Øvingsforelesning 7 Kai Olav Ellefsen 2 I dag… • Databaser: Databasedesign og SQL • JSP: Koble databasen til nettsiden Kai Olav Ellefsen, NTNU, 2010 3 Et større databaseeksempel • • • • • Designer en database Oppretter database i mySQL Kobler den til en JSP-side Setter inn informasjon fra nettsiden i databasen Henter ut iformasjon fra databasen til nettsiden Kai Olav Ellefsen, NTNU, 2010 4 Oppgave 1: ER-diagram • Lag et ER-digagram for en filmdatabase • Relevante tabeller er film, regissør og skuespiller • Attributter: – Film: Navn, årstall, sjanger – Skuespiller: Fornavn, etternavn, fødselsår – Regissør: Fornavn, etternavn, fødselsår • Velg relasjoner, primærnøkler og fremmednøkler selv Kai Olav Ellefsen, NTNU, 2010 5 Løsningsforslag Spiller i Skuespiller -id -Navn -Fødselsår Regissør Film -id -Navn -Fødselsår -id -Navn -Årstall -Sjanger Regisserer Kai Olav Ellefsen, NTNU, 2010 6 Oppgave 2: SQL • Lag databasen i SQL: – Logg inn på login.stud.ntnu.no – Opprett tabellene: CREATE TABLE tabellnavn ( attributt1 felttype PRIMARY KEY, attributt2 felttype ); -Pass på mange-til-mange koblingen mellom skuespiller og film Kai Olav Ellefsen, NTNU, 2010 7 Løsningsforslag Skuespiller -id -navn -fødselsår FilmOgSkuespiller -filmID -skuespillerID Film -id -navn -årstallregissørID Regissør -id -Navn -Fødselsår Kai Olav Ellefsen, NTNU, 2010 8 Oppgave 3: Endringer • Vi ønsker å erstatte navn-attributtet hos skuespiller og regissør med fornavn og etternavn • Vi ønsker også å legge til et terningkast-attributt i film-tabellen. • Bruk ALTER TABLE: – ALTER TABLE tabellnavn ADD attributtnavn atributtype; – ALTER TABLE tabellnavn DROP attributtnavn; Kai Olav Ellefsen, NTNU, 2010 9 Oppgave 4: Sette inn data • Sett inn følgende filmer, regissører og skuespillere: • Inglourious Basterds (2009). Regissør: Quentin Tarantino (f. 1963). Skuespillere: Brad Pitt (f. 1963) • Fight Club (1999). Regissør: David Fincher (f. 1962). Skuespillere: Brad Pitt (f. 1963) og Edward Norton (f. 1969) • Gi dem terningkast selv • INSERT INTO tabell(felt1, felt2, felt3) VALUES (verdi1, verdi2, verdi3); Kai Olav Ellefsen, NTNU, 2010 10 Oppgave 5: Hent ut data • Lag en spørring som gir ut alle filmer i databasen sortert stigende etter terningkast • Lag en spørring for å finne tittel og terningkast på alle filmer regissert av Quentin Tarantino • Lag en spørring for å finne tittel og årstall for alle filmer med Brad Pitt, sortert etter årstall (synkende) Kai Olav Ellefsen, NTNU, 2010 11 Oppgave 6: Koble mot JSP <%@page import="java.sql.*" %> <% Class.forName("org.gjt.mm.mysql.Driver").newInstance(); Connection db = java.sql.DriverManager.getConnection( "jdbc:mysql://mysql.stud.ntnu.no/databasenavn","brukernavn", "passord"); Statement st = db.createStatement(); ResultSet rs; //Her skal vi sette inn kode for å skrive spørringer db.close(); %> Kai Olav Ellefsen, NTNU, 2010 12 Oppgave 7: Hente ut via JSP • Skriv ut alle regissører og filmer på nettsiden: Quentin Tarantino: Inglourious Basterds David Fincher: Fight Club • Slik brukes rs og st: rs = st.executeQuery("SELECT * FROM skuespiller"); while(rs.next()){ String fornavn = rs.getString("fornavn"); String etternavn = rs.getString("etternavn"); out.println(fornavn + " " + etternavn + "<br/>"); } Kai Olav Ellefsen, NTNU, 2010
© Copyright 2024