Introduktion til Grails – del 2 - Model

Tags:    grails hjemmeside database groovy
<< < 123 > >>
Skrevet af Bruger #5097 @ 19.08.2011
Denne artikel er en efterfølger til artiklen “Introduktion til Grails” som kan læses her på udvikleren. Har du ikke allerede læst den, anbefales det er starte med denne artikel. Denne artikel vil gå mere i dybden med modellen (domain). Det er denne del hvor du fortæller hvad der skal gemmes i din database.

I denne artikel vil vi se på:
  1. Hvorledes du kan bruge din foretrukne database (såsom MySQL).

  2. Hvorledes du kan sætte begrænsninger på din model der sikre at den kun tager imod fornuftigt indhold.

  3. Hvordan du laver one-to-one, one-to-many og many-to-many relationer imellem dine tabeller.



1. Ændre database

Som standart benytter Grails sig af databasen HSQLDB. Databasen er en open-source letvægtsdatabase lavet i Java. Databasen er populær, men på ingen måde i samme grad som MySQL, Oracle og så videre. Er du vandt til at arbejde med en af disse databaser kan du med stor fornuft vælge at benytte dig af den. Dette kræver naturligvis at du har en anden database oppe at køre (hvilket vi ikke vil se på her)
Grails benytter sig af JDBC (Java DataBase Connectivity) til at forbinde sig med databasen. Og heldigvis er JDBC meget populær og der findes derfor JDBC drivers for alle databaser med respekt for sig selv. Derfor med stor sikkerhed også den du benytter.

Konfigurationen af databasen foregår via filen DataSource.groovy (filmappe: grails-app/conf).



DataSource.groovy ser som standart således ud:
Fold kodeboks ind/udJava kode 


Forståelse af DataSource.groovy
Et Grails projekt kan køre i tre forskellige miljøer (environments): Development, Test og Production. Development er det miljø du bør køre når du udvikler siden. Test er miljøet når du ønsker at teste dit system. Og endelig er production det miljø du bruger når din hjemmeside skal skal køre på nettet (i produktion). Det smarte ved dette er at du kan have brug for forskellige indstillinger i de forskellige miljøer.
Nå du køre grails koden grails run-app køre du dit projekt i development-miljøet idet det er standart. Ønsker du at køre dit projekt i andre miljøer kan du bruge følgende koder:

Fold kodeboks ind/udJava kode 


At have forskellige indstillinger gælder blandt andet også for din database. Derfor ser du at der i din DataSource.groovy står koden:

Fold kodeboks ind/udJava kode 


Lad os se hvad indstillingerne gør:

dbCreate: Bruges til at vælge hvorvidt den skal lave en ny database, hver gang serveren startes, eller om den skal vedligeholde den allerede eksisterende.
I development-mijøet, som vi som standart benytter, vil vi opdage at hver gang serveren genstartes er alle instanser indsat fjernet. Dette skyldes den er sat til create-drop. Her stømmes og derefter genlaves database tabellerne hver gang.
Alternativt kan indstillingen update også benyttes. Her bliver databasen altid vedligeholdt, og aldrig tømt. Dette er velegnet til production.

url: Er JDBC url-adressen til databasen.


Ændre koden så anden database benyttes
  1. Hent den ConnectJ driveren der høre til din database. Den kan findes på databasens producents hjemmeside. MySQL's driver findes her: http://dev.mysql.com/downloads/connector/j/5.0.html

  2. I den komprimerede-mappe findes en jar-fil som du placerer i projektets mappe lib.

  3. Ændre DataSource.groovy til at benytte din ønskede database.


For at benytte MySQL benyttes følgende kode:

Fold kodeboks ind/udJava kode 


Url: Som tidligere nævnt er url adressen på din database.
DriverClassName: Her skrives klassenavnet på driveren. Dette burde gerne kunne findes på databasens hjemmeside.
Username: Brugernavn til databasen
Password: Dit password til databasen

Den samlede kode kommer til at se således ud:
Fold kodeboks ind/udJava kode 

Bemærk at MySQL også kan sættes til for de andre miljøer.





<< < 123 > >>

Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.

Del også gerne artiklen med dine Facebook venner:  

Kommentarer (3)

User
Bruger #4487 @ 19.08.11 23:17
Lovely.... Denne artikel var længe ventet :P Tak!!!
User
Bruger #4487 @ 24.11.11 23:34
Hej Theis

Er der en tredje del i trykken?

\ Martin
User
Bruger #5097 @ 27.11.11 21:46
Hey og tak for at du kan lide det. Lige pt ikke, men hvis jeg får tid. Måske i starten af januar...

I øvrigt er jeg informeret om at der nok er nogle ukorrektheder omkring many-to-many relationer. Jeg har ikke lige tid til at kikke på det nu, men det afsnit kan det anbefales evt at få dobbeltchecket hvis der er brug for.
Du skal være logget ind for at skrive en kommentar.
t