Úvod do programu Grails 3 a GORM

Perzistencia hore

Práve som oznámil nové Naučte sa jar kurz zameraný na základy jari 5 a Spring Boot 2:

>> SKONTROLUJTE KURZ

1. Prehľad

Toto je rýchle predstavenie Grails 3 a GORM.

Samozrejme použijeme Groovy a - implicitne - framework tiež využíva Hibernate pre ORM, Spring Framework pre Dependency Injection, SiteMash pre rozloženie a témy atď.

2. Konfigurácia zdroja údajov

Môžeme začať bez toho, aby sme museli špecifikovať akúkoľvek explicitnú konfiguráciu zdroja údajov - program Grails štandardne používa na vývojové a testovacie prostredie databázu HSQLDB.

Ak ale chcete tieto predvolené nastavenia zmeniť, môžete v zdroji definovať vybraný zdroj údajov aplikácia.yml:

prostredia: development: dataSource: driverClassName: "com.mysql.jdbc.Driver" url: "jdbc: mysql: // localhost: 8080 / test" dialect: org.hibernate.dialect.MySQL5InnoDBDialect 

Podobne tu môžeme vytvoriť viac prostredí rozvoja ak potrebujeme.

3. Doména

Grails je schopný vytvoriť databázovú štruktúru pre naše doménové triedy na základe dbCreate vlastnosť v konfigurácii databázy.

Definujme tu jednu z týchto doménových tried:

Trieda Užívateľ {Reťazec userName Reťazec heslo String email Vek reťazca statické obmedzenia = {userName blank: false, unique: true heslo veľkosť: 5..10, blank: false email email: true, blank: true}}

Všimnite si, ako špecifikujeme naše obmedzenia platnosti priamo v modeli, ktorý udržuje veci pekné a čisté a bez anotácií.

Tieto obmedzenia Grails automaticky skontroluje, keď bude entita pretrvávať, a ak dôjde k porušeniu niektorej z týchto obmedzení, rámec vyvolá príslušné overovacie výnimky.

Môžeme tiež určiť mapovanie GORM v mapovanie vlastnosť modelu:

statické mapovanie = {sort "userName"}

Teraz, keď voláme User.list () - dostaneme späť výsledky zoradené podľa používateľské meno.

Rovnaký výsledok by sme samozrejme mohli dosiahnuť odovzdaním príkazu sort do zoznamu API:

User.list (triedenie: "userName")

4. Operácie CRUD

Keď sa pozrieme na operácie API, lešenie hrá na začiatku veľmi zaujímavú úlohu; umožňuje vám vygenerovať základné CRUD API pre triedu domény, vrátane:

  • Potrebné pohľady
  • Akcie radiča pre štandardné operácie CRUD
  • Dva typy: dynamický a statický

Takto to funguje s dynamickým lešením:

trieda UserController {static scaffold = true}

Už len napísaním tohto jedného riadku rámec vygeneruje za behu 7 metód: show, edit, delete, create, save and update. Tieto budú zverejnené ako API pre konkrétnu entitu domény.

Príklad statického lešenia:

  • Na vytvorenie pohľadu s lešením použite: “grails generate-views Užívateľ
  • Na vytvorenie radiča a prezeranie pomocou lešenia použite: “grails generate-controller Užívateľ
  • Ak chcete vytvoriť všetko pomocou jediného príkazu, použite: „grály generujú všetkých používateľov

Tieto príkazy automaticky vygenerujú potrebné inštalatérske práce pre konkrétny objekt domény.

Poďme sa teraz veľmi rýchlo pozrieť na použitie týchto operácií - napríklad na naše Používateľ objekt domény.

To vytvoriť nový záznam „používateľa“:

def user = new User (používateľské meno: "test", heslo: "test123", e-mail: "[chránený e-mailom]", vek: 14) user.save ()

To načítať jeden záznam:

def user = User.get (1) 

Toto dostať API načíta objekt domény v editovateľnom režime. Pre režim iba na čítanie môžeme použiť čítať API:

def user = User.read (1)

To aktualizovať existujúci záznam:

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

A jednoduchá operácia odstránenia existujúceho záznamu:

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

5. Dotazy GORM

5.1. Nájsť

Začnime s Nájsť API:

def user = User.find ("from User as u where u.username = 'test'")

Na zadanie parametra môžeme použiť aj inú syntax:

def user = User.find ("from User as u where u.username?", ['test'])

Môžeme tiež použiť pomenovaný parameter:

def user = User.find ("from User as u where u.username =?", [username: 'test'])

5.2. nájsťBy

Grails poskytuje dynamický vyhľadávač, ktorý používa vlastnosti domény na vykonanie dotazu za behu a na vrátenie prvého zodpovedajúceho záznamu:

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

Viac výrazov nájdete tu.

5.3. Kritériá

Údaje môžeme tiež načítať pomocou niektorých flexibilných kritérií:

def user = User.find {username == "test"} def user = User.createCriteria () def results = user.list {like ("userName", "te%") and {between ("age", 10, 20)} order ("userName", "desc")}

Krátka poznámka - pri použití dotazu na kritériá použite namiesto „()“ „{}“.

5.4. Vykonajte dopyt / aktualizáciu

GORM tiež podporuje syntax dotazu HQL - pre operácie čítania:

def user = User.executeQuery ("vyberte u.userName z User u kde u.userName =?", ['test'])

Rovnako ako operácie zápisu:

def user = User.executeUpdate ("delete User u where u.username =?", ['test'])

6. Záver

Toto bolo veľmi rýchle úvodné slovo pre Grails a GORM - slúžilo ako sprievodca pre začatie práce s rámcom.

Perzistencia dno

Práve som oznámil nové Naučte sa jar kurz zameraný na základy jari 5 a Spring Boot 2:

>> SKONTROLUJTE KURZ

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