Bevezetés a Grails 3-ba és a GORM-ba
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 FOLYAMATOT1. Á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: Ez a Grails és a GORM nagyon gyors bevezetője volt - útmutatóként szolgál a keretrendszer használatának megkezdéséhez.def user = User.executeUpdate ("Felhasználó törlése, ahol u.felhasználónév =?", ['teszt'])
6. Következtetés
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