- Åbn din terminal og naviger hen til mappen hvor du ønsker dette projekt skal ligge (HINT:
cd
bruges til at skifte mappe) - Clone dette repository
- Åbn IntelliJ og importer projectet. Vælg
import project from existing model
og vælgmaven
- OBS: Hvis klassen
ResetDatabase
ikke kan køres, gå tilfile
->project structure
->modules
. Klik på mappensrc
og marker den, og trykSources
. Herefter OK, og du bør kunne køre filen.
OBS - Før projektet kan køres, skal I have MySql installeret og kørende på jeres maskine (som vi satte op i første øvelsestime).
- I mappen
/src
højreklik på ResetDatabase - Klik på
Run 'ResetDatabase.main()'
Får I nogle fejl? Hvilke?
Hvis fejlen ligner det her, så gå videre til opg. 3:
java.sql.SQLNonTransientConnectionException: Cannot load connection class because of underlying exception: com.mysql.cj.core.exceptions.WrongArgumentException: Failed to parse the host:port pair 'null:null'.
I ResetDatabase
-klassen på linje 22, 23 og 24 kan I se at System.getenv(...)
bliver kaldt og forventer
at finde en variabel. Da disse ikke er sat på forhånd I jeres projekt, skal disse konfigureres inden systemet
kan køre.
- Klik på "ResetDatabase" konfigurationen ved den grønne play-knap øverst til højre
- Klik "Edit Configurations ..."
- Klik på "..." yderste til højre ved "Environment Variables"
- Klik på "+" nederst til venstre
- Opret og navngiv nu følgende variable og indsæt de værdier som passer til dit system:
DATABASE_HOST (default er localhost)
DATABASE_NAME (her vælger du "dis")
DATABASE_PORT (default er 3306)
DATABASE_USER
DATABASE_PASSWORD
- Tryk OK og OK
- Kør programmet igen
Hvis alt virker som det skal, så printes en masse tekst i konsollen og du kan nu åbne din databse og se hvilke tabeller
samt værdier der er blevet insat. Læg mærke til at det her sagtens kan lade sig gøre at køre INSERT
statements, hvis I
vil have default indhold hver gang scriptet køres.
Scriptet er lavet således at det sletter, opretter og kører sql.sql
filen hver gang programmet køres. Du kan derfor
prøve at smide en masse indhold i databasen og så køre scriptet igen. Din database skulle nu gerne være rullet tilbage
som den så ud da du begyndte.
Tegn databasediagrammet. Hvilke tabeller er der, hvilke felter indeholder de, hvordan hænger de sammen (primary keys og foreign keys, er de én til én eller én til mange eller noget tredje?)
- List alle courses. (Brug SELECT)
- Prøv at tilføj en ny student. I kan få inspiration i
sql.sql
filen, hvor i kan se, hvordanINSERT
kommandoen fungere. - Assign den nye studerende til et specifict course
- (SVÆR) List alle studerende som er assigned til faget Distribuerede Systemer. (Hint: I skal bruge en
INNER JOIN
kommando, som finder ud af, hvad to databaser har tilfældes ud fra nogle fælles felter (typisk bruger man foreign keys). I bunden afsql.sql
står der en specific query. Denne kan bruges, hvis i tilføjer en betingelse.