Exempel som visar hur man använder Squeryl för att skapa en databas
Switch branches/tags
Nothing to show
Pull request Compare This branch is even with NikolajLindberg:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
project
src
.gitignore
INSTRUKTIONER.txt
README.md
dependency-versions.txt

README.md

Kodexempel till squerylartikeln i Datormagazin 11/2010

Här finns information för att installera och köra koden som hör till artikeln om databas-API:et Squeryl, som presenteras i Datormagazin 11/2010.

Instruktionerna i denna fil finns att läsa här: http://github.com/NikolajLindberg/LangDb-Squerylexempel

LangDb.scala

LangDb.scala är ett litet exempel som illustrerar hur man använder Squeryl.

Instruktioner för att testa exempeldatabasen

  • Se till att du har en modern JVM installerad

  • Installera SBT. Se "Mer om SBT" nedan.

  • Ladda ner projektet:

    • Installera Git (om du vill), och checka ut testprojektet: git clone git://github.com/NikolajLindberg/LangDb-Squerylexempel.git

    • Eller ladda ner koden från Github, och packa upp den

    • Eller hämta koden från Datormagazins filarkiv, och packa upp den

  • Ställ dig i katalogen LangDb-Squerylexempel

  • Starta sbt

  • Skriv update (nu hämtar SBT alla externa bibliotek som krävs, inklusive Squeryl)

  • Skriv test (exempelprojektet kompileras och testerna körs)

Om du lyckas med stegen ovan, kan du med fördel börja titta på kodexemplen.

Kodexempel

Själva exempeldatabasen finns i LangDb-Squerylexempel/src/main/scala/se/stts/langdb/LangDb.scala. Här kan du se alla detaljer som inte fanns plats för i artikeln.

Testexempel

Till koden finns en uppsättning tester, som körs med hjälp av Specs. Specs är ett bibliotek för enhetstestning (besläktat med exempelvis JUnit).

Testkoden är intressant, dels för att den visar hur Specs används, dels för att den visar hur testdatabasen används. Här finns exempel på hur man kopplar upp sig till en databas och anropar den via Squeryl.

Källkoden till testerna ligger här: LangDb-Squerylexempel/src/test/scala/se/stts/langdb/

Exempel på inläsning av data

Det finns en särskild fil som läser in lite data, LangDb-Squerylexempel/src/test/scala/se/stts/langdb/MediumDataSample.scala (notera att den ligger i test-katalogen).

Dokumentation

Koden är dokumenterad, och går bra att läsa direkt i källkoden. Med hjälp av scaladoc kan man generera en HTML-version, om så önskas. Starta SBT och skriv doc.

Öppna filen LangDb-Squerylexempel/target/scala_2.8.0/doc/main/api/index.html i en webbläsare.

H2-databasen och databasfilerna

Exempeldatabasen körs i databasmotorn H2. Den laddas automatiskt ner av SBT.

När test körs i SBT, skapas två databasfiler i tmp-katalogen:

  • MediumDataSample.h2.db
  • ArtikelKodTest.h2.db

Om du manuellt installerar H2, får du tillgång till ett grafiskt gränssnitt som körs via en webbläsare. Du kan koppla upp dig mot databasfilerna ovan via detta gränssnitt, och söka i dem med vanlig SQL.

Mer om SBT

SBT, "Simple Build Tool", är en ett lättanvänt kompileringsverktyg skrivet i och för Scala.

Engelska installationsanvisningar finns här. Installationen går ut på att skapa en exekverbar batch/skalfil som kör SBT.

Börja med att ladda ner sbt-launch-0.7.4.jar, och gör sedan så här:

På Linux:

  • Lägg SBT-jarfilen i ~/bin tillsammans med skriptet sbt, som skall ha följande innehåll:

    java -Xmx512M -jar `dirname $0`/sbt-launch-0.7.4.jar "$@"

  • Gör skriptet exekverbart: chmod u+x ~/bin/sbt

På Windows:

  • Skapa en batchfil, sbt.bat, och se till att den finns i din sökväg. Lägg SBT-jarfilen i samma katalog som batchfilen.

  • Skriv in följande i filen:

    set SCRIPT_DIR=%~dp0

    java -Xmx512M -jar "%SCRIPT_DIR%sbt-launch-0.7.4.jar" %*

Exempelkommandon

SBT är ett avancerat verktyg, som kan göra en massa saker. Här följer några grundläggande kommandon.

  • update --- läser och kompilerar projektfilen, och laddar ner de externa bibliotek som eventuellt behövs.

  • compile --- kompilerar de scala- och javafiler som ligger under biblioteket src. Kompilerar endast de filer som påverkas av de senaste ändringarna.

  • ~ compile --- samma som ovan, men körs automatiskt så fort någon källkodsfil ändrats.

  • test --- kompilerar källkoden och kör alla tester

  • ~ test --- samma som ovan, men körs automatiskt så fort någon källkodsfil ändrats

  • test-quick --- kör endast de tester som misslyckades i förra körningen

  • doc --- genererar scaladoc. doc-all genererar scaladoc även för testklasser.

  • clean --- rensar bort kompilerad kod

Konfiguration

Det finns två konfigurationsfiler att hålla redan på. Den ena är LangDb-Squerylexempel/project/build.properties och den andra är projektdefinitionen. I detta exempel finns projekdefinitionen i LangDb-Squerylexempel/project/build/SquerylDemoProject.scala.

Programversioner

För detta exempelprojekt används följande programversioner (se även konfigurationsfilerna ovan):

Länkar

En samling länkar, relevanta för exempelprojektet.

Diverse verktyg

Läsning

Scalaböcker

  • Beginning Scala (David Pollak)
  • Programming in Scala (Odersky, Spoon och Venners)
  • Programming Scala (Wampler, Payne) OBS! Fritt tillgänglig nätversion

Text om relationsdatabaser

Fritt tillgängligt kapitel ur boken Java Database Best Practices: Chapter 2: Relational Data Architecture. (En bra översikt och förklaring av relationsdatabaser.)