Uvod u gralove 3 i GORM
Upravo sam najavio novo Uči proljeće tečaj, usredotočen na osnove Spring 5 i Spring Boot 2:
>> PROVJERITE TEČAJ1. Pregled
Ovo je kratki uvod u Grails 3 i GORM.
Mi ćemo naravno koristiti Groovy i - implicitno - okvir također koristi Hibernate za ORM, Spring Spring za ubrizgavanje ovisnosti, SiteMash za izgled i teme, itd.
2. Konfiguracija DataSourcea
Možemo započeti bez navođenja bilo kakve eksplicitne konfiguracije izvora podataka - prema zadanim postavkama Grails koristi bazu podataka HSQLDB za okruženja za razvoj i testiranje.
Ali ako želite promijeniti ove zadane postavke, možete definirati odabrani izvor podataka u primjena.iml:
okruženja: razvoj: izvor podataka: driverClassName: "com.mysql.jdbc.Driver" url: "jdbc: mysql: // localhost: 8080 / test" dijalekt: org.hibernate.dialect.MySQL5InnoDBDialect
Slično tome, ovdje možemo stvoriti više okruženja razvoj ako trebamo.
3. Domena
Grails je sposoban stvoriti strukturu baze podataka za naše klase domena, temeljenu na dbCreate svojstvo u konfiguraciji baze podataka.
Definirajmo ovdje jednu od ovih klasa domena:
Korisnik klase {String userName Lozinka niza String e-adresa String age static constraints = {userName blank: false, unique: true password size: 5..10, blank: false email email: true, blank: true}}
Primijetite kako specificiramo svoj ograničenja provjere prava u modelu, koji održava stvari lijepima i čistima te bez bilješki.
Grails će ta ograničenja automatski provjeriti kad se entitet nastavi, a okvir će izbaciti odgovarajuće iznimke za provjeru valjanosti ako je neko od ovih ograničenja slomljeno.
Također možemo odrediti GORM preslikavanja u mapiranje svojstvo modela:
statičko mapiranje = {sortiraj "userName"}
Sad ako nazovemo User.list () - vratit ćemo rezultate poredano po Korisničko ime.
Mogli bismo naravno postići isti rezultat dodavanjem sortiranja na API popisa:
User.list (sortiraj: "userName")
4. CRUD operacije
Kada pogledamo API operacije, skele u početku igra vrlo zanimljivu ulogu; omogućuje vam generiranje osnovnog CRUD API-ja za klasu domene, uključujući:
- Potrebni pogledi
- Radnje kontrolera za standardne CRUD operacije
- Dvije vrste: dinamička i statička
Evo kako to funkcionira s dinamičkim skelama:
klasa UserController {static scaffold = true}
Samo pisanjem ovog jednog retka, okvir će generirati 7 metoda u vrijeme izvođenja: prikazivanje, uređivanje, brisanje, stvaranje, spremanje i ažuriranje. Oni će biti objavljeni kao API za taj određeni entitet domene.
Primjer statičke skele:
- Da biste stvorili pogled pomoću skele: "grails generira-pregledava Korisnik“
- Da biste stvorili kontroler i prikaz pomoću skele, upotrijebite: “grails generated-controller Korisnik“
- Da biste stvorili sve u jednoj naredbi, upotrijebite: “grails generiraj-sve Korisnik“
Te će naredbe automatski generirati potrebne vodovodne instalacije za taj određeni objekt domene.
Pogledajmo sada vrlo brzo korištenje ovih operacija - na primjer, za našu Korisnik objekt domene.
Do stvoriti novi "korisnički" zapis:
def user = novi korisnik (korisničko ime: "test", lozinka: "test123", e-pošta: "[e-pošta zaštićena]", dob: 14) user.save ()
Do dohvatiti jedan zapis:
def user = User.get (1)
Ovaj dobiti API će dohvatiti objekt domene u načinu koji se može uređivati. Za način samo za čitanje možemo koristiti čitati API:
def user = User.read (1)
Do ažurirati postojeći zapis:
def user = User.get (1) user.userName = "testUpdate" user.age = 20 user.save ()
I jednostavna operacija brisanja za postojeći zapis:
def user = User.get (1) user.delete ()
5. GORM Upiti
5.1. pronaći
Počnimo s pronaći API:
def user = User.find ("from User as u where u.username = 'test'")
Također možemo koristiti drugu sintaksu za prosljeđivanje parametra:
def user = User.find ("od User as u where u.username?", ['test'])
Također možemo koristiti imenovani parametar:
def user = User.find ("from User as u where u.username =?", [korisničko ime: 'test'])
5.2. pronađiBy
Grails pruža mogućnost dinamičkog pretraživača koji koristi svojstva domene za izvršavanje upita u vrijeme izvođenja i vraćanje prvog odgovarajućeg zapisa:
def user = User.findByUsername ("test") user = User.findByUsernameAndAge ("test", 20) user = User.findByUsernameLike ("tes") user = User.findByUsernameAndAgeNotEquals ("test", "100")
Ovdje možete pronaći više izraza.
5.3. Kriteriji
Također možemo doći do podataka koristeći neke fleksibilne kriterije:
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")}
Kratka napomena ovdje - kada koristite upit s kriterijima, upotrijebite "{}" umjesto "()".
5.4. Izvršite upit / ažuriranje
GORM također podržava sintaksu upita HQL - za operacije čitanja:
def user = User.executeQuery ("odaberite u.userName iz User u where u.userName =?", ['test'])
Kao i operacije pisanja: Ovo je vrlo brz uvod u Grails i GORM - koji će se koristiti kao vodič za početak rada s okvirom.def user = User.executeUpdate ("izbriši korisnika u gdje je u.username =?", ['test'])
6. Zaključak
Upravo sam najavio novo Uči proljeće tečaj, usredotočen na osnove Spring 5 i Spring Boot 2:
>> PROVJERITE TEČAJ