Bevezetés a Grails 3-ba és a GORM-ba

Kitartás felső

Most jelentettem be az újat Tanulj tavaszt tanfolyam, amelynek középpontjában az 5. tavasz és a tavaszi bakancs 2 alapjai állnak:

>> ELLENŐRIZZE A FOLYAMATOT

1. Áttekintés

Ez egy gyors bevezető a Grails 3-hoz és a GORM-hoz.

Természetesen a Groovy-t fogjuk használni, és - implicit módon - a keretrendszer a Hibernate for ORM, a Spring Framework for Dependency Injection, a SiteMash is felhasználja az elrendezést és a témákat stb.

2. Adatforrás konfigurálása

Kezdhetjük anélkül, hogy meg kellene adnunk semmilyen explicit adatforrás-konfigurációt - alapértelmezés szerint Grails a HSQLDB adatbázist használja a fejlesztési és tesztelési környezetekhez.

De ha meg akarja változtatni ezeket az alapértelmezéseket, akkor megadhatja a kiválasztott adatforrást a alkalmazás.yml:

környezetek: fejlesztés: dataSource: driverClassName: "com.mysql.jdbc.Driver" URL: "jdbc: mysql: // localhost: 8080 / test" dialektus: org.hibernate.dialect.MySQL5InnoDBDialect 

Hasonlóképpen itt is létrehozhatunk több környezetet, mellette fejlődés ha kell.

3. Domain

Grails képes létrehozni a domain osztályaink adatbázis-struktúráját a dbCreate tulajdonság az adatbázis-konfigurációban.

Itt határozzuk meg az alábbi tartományosztályok egyikét:

Osztály felhasználó {String felhasználónév String jelszó Karakterlánc e-mail karakterlánc kor statikus korlátozások = {felhasználónév üres: hamis, egyedi: igaz jelszóméret: 5..10, üres: hamis e-mail e-mail: igaz, üres: igaz}}

Vegye figyelembe, hogy hogyan adjuk meg érvényesítési korlátozások közvetlenül a modellben, amely szépen és tisztán, valamint kommentármentesen tartja a dolgokat.

Ezeket a korlátozásokat a Grails automatikusan ellenőrzi, amikor az entitás fennmarad, és a keretrendszer megfelelő ellenőrzési kivételeket vet fel, ha ezek a korlátozások bármelyike ​​megsérül.

A GORM-leképezéseket is megadhatjuk feltérképezése a modell tulajdonságai:

statikus leképezés = {sort "userName"}

Ha hívunk User.list () - visszakapjuk az eredményeket rendezés szerint felhasználónév.

Természetesen ugyanazt az eredményt érhetnénk el, ha a rendezést átadjuk a lista API-nak:

User.list (rendezés: "userName")

4. CRUD műveletek

Ha megnézzük az API műveleteket, állvány kezdetben nagyon érdekes szerepet játszik; lehetővé teszi, hogy egy CRUD API-t hozzon létre egy tartományosztályhoz, beleértve:

  • A szükséges nézetek
  • Vezérlő műveletek a standard CRUD műveletekhez
  • Két típus: Dinamikus és Statikus

Így működik ez a dinamikus állványokkal:

class UserController {static scaffold = true}

Csak ennek az egyetlen sornak a megírásával a keretrendszer futás közben 7 metódust generál: megjelenítése, szerkesztése, törlése, létrehozása, mentése és frissítése. Ezeket az adott domain entitás API-ként teszik közzé.

Példa statikus állványokra:

  • Nézet létrehozása állvány használatával:grails generál-nézetek Felhasználó
  • Vezérlő létrehozása és nézet állványozással:grails generátor-vezérlő Felhasználó
  • Ha mindent egyetlen parancsban szeretne létrehozni, használja a következőt:grails generálja az összes felhasználót

Ezek a parancsok automatikusan létrehozzák az adott tartományi objektumhoz szükséges vízvezetéket.

Most nézzük meg nagyon gyorsan ezeknek a műveleteknek a használatát - például a mi Felhasználó domain objektum.

Nak nek hozzon létre új „felhasználói” rekordot:

def user = new User (felhasználónév: "test", jelszó: "test123", e-mail: "[email protected]", életkor: 14) user.save ()

Nak nek egyetlen rekordot hozhat le:

def user = Felhasználó.get (1) 

Ez kap Az API szerkeszthető módban fogja lekérni a tartományobjektumot. Csak olvasható módban használhatjuk a olvas API:

def user = Felhasználó.olvasott (1)

Nak nek frissítse a meglévő rekordot:

def user = User.get (1) user.userName = "testUpdate" user.age = 20 user.save () 

És egy létező rekord egyszerű törlési művelete:

def user = User.get (1) user.delete ()

5. GORM lekérdezések

5.1. megtalálja

Kezdjük a megtalálja API:

def user = User.find ("a felhasználótól u-ként, ahol u.username = 'teszt'")

Különböző szintaxist is használhatunk a paraméter átadásához:

def user = User.find ("a felhasználótól, ahol u, ahol u.felhasználónév?", ['teszt'])

Használhatunk egy megnevezett paramétert is:

def user = User.find ("from User as u where u.username =?", [felhasználónév: 'test'])

5.2. findBy

A Grails egy dinamikus kereső szolgáltatást kínál, amely tartományi tulajdonságokat használ a futás közbeni lekérdezés végrehajtására és az első megfelelő rekord visszaadására:

def user = User.findByUsername ("teszt") user = User.findByUsernameAndAge ("teszt", 20) user = User.findByUsernameLike ("tes") user = User.findByUsernameAndAgeNotEquals ("teszt", "100")

További kifejezéseket itt talál.

5.3. Kritériumok

Adatokat is lekérhetünk néhány rugalmas feltétel használatával:

def user = User.find {felhasználónév == "test"} def user = User.createCriteria () def results = user.list {like ("userName", "te%") és {között ("age", 10, 20)} rendelés ("userName", "desc")}

Itt egy rövid megjegyzés - ha feltételkérdést használ, akkor a „(}” helyett használja a „{}” szót.

5.4. Lekérdezés / frissítés végrehajtása

A GORM a HQL lekérdezési szintaxist is támogatja - az olvasási műveletekhez:

def user = User.executeQuery ("válassza ki az u.userName elemet u felhasználóról, ahol u.userName =?", ['teszt'])

Az írási műveletek mellett:

def user = User.executeUpdate ("Felhasználó törlése, ahol u.felhasználónév =?", ['teszt'])

6. Következtetés

Ez a Grails és a GORM nagyon gyors bevezetője volt - útmutatóként szolgál a keretrendszer használatának megkezdéséhez.

Perzisztencia alsó

Most jelentettem be az újat Tanulj tavaszt tanfolyam, amelynek középpontjában az 5. tavasz és a tavaszi bakancs 2 alapjai állnak:

>> ELLENŐRIZZE A FOLYAMATOT

$config[zx-auto] not found$config[zx-overlay] not found