120 likes | 221 Views
Øvingsforelesning 7. Kai Olav Ellefsen. I dag…. Databaser: Databasedesign og SQL JSP: Koble databasen til nettsiden. Et større databaseeksempel. Designer en database Oppretter database i mySQL Kobler den til en JSP-side Setter inn informasjon fra nettsiden i databasen
E N D
Øvingsforelesning 7 Kai Olav Ellefsen
I dag… Databaser: Databasedesign og SQL JSP: Koble databasen til nettsiden Kai Olav Ellefsen, NTNU, 2010
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
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
Løsningsforslag Spiller i Regissør -id -Navn -Fødselsår Film -id -Navn -Årstall -Sjanger Skuespiller -id -Navn -Fødselsår Regisserer Kai Olav Ellefsen, NTNU, 2010
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
Løsningsforslag Film -id -navn -årstall-regissørID Skuespiller -id -navn -fødselsår FilmOgSkuespiller -filmID -skuespillerID Regissør -id -Navn -Fødselsår Kai Olav Ellefsen, NTNU, 2010
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
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
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
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
Oppgave 7: Hente ut via JSP • Skriv ut alle regissører og filmer på nettsiden: Quentin Tarantino: InglouriousBasterds David Fincher: Fight Club • Slikbrukesrsogst: 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