Úvod do programu Grails 3 a GORM
Práve som oznámil nové Naučte sa jar kurz zameraný na základy jari 5 a Spring Boot 2:
>> SKONTROLUJTE KURZ1. 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: Toto bolo veľmi rýchle úvodné slovo pre Grails a GORM - slúžilo ako sprievodca pre začatie práce s rámcom.def user = User.executeUpdate ("delete User u where u.username =?", ['test'])
6. Záver
Práve som oznámil nové Naučte sa jar kurz zameraný na základy jari 5 a Spring Boot 2:
>> SKONTROLUJTE KURZ