„Grails” változatai közötti eltérés

A Wikipédiából, a szabad enciklopédiából
Tartalom törölve Tartalom hozzáadva
javás, webes keretrendszer (csonk)
Címke: Kategorizálatlan csonksablon
(Nincs különbség)

A lap 2010. október 20., 15:27-kori változata

Grails

Legfrissebb stabil kiadás1.2
Programozási nyelvGroovy
Operációs rendszerplatformfüggetlen
Kategóriawebes keretrendszer
LicencApache Software License 2.0
A Grails weboldala

A Grails egy nyílt forráskódú webes keretrendszer, ami a Groovy nyelvre, tehát közvetve a Java platformra alapul.

A Grails korábbi neve 'Groovy on Rails' volt, de 2006 márciusában megváltak attól a névtől David Heinemeier Hansson, a Ruby on Rails alkotójának kérésére.[1]

A fejlesztést 2005 júliusában kezdődött, a 0.1 verzió 2006 március 29-én jelent meg, az 1.0 verzió 2008 február 18-án.

Architektúra

grails-app/domain/Cow.groovy
 class Cow {
  String name
  String color
 }

A Grails keretrendszer a modell-nézet-vezérlő (Model-View-Controller – MVC) mintát használja.

Modell (Model)

A modell az adatokat reprezentálja. A tartomány-osztályok konvenció szerint a grails-app/domain/ mappában vannak. Egy egyszerű tartományosztály reprezentálhat például teheneket.

Nézet (View)

A nézetek az adatokat jelenítik meg a felhasználók felé, illetve felhasználói interakciókat fogadnak. Mivel a Grails webes keretrendszer, a nézetek weboldalként jelennek meg. A Grails támogatja a JSP és a GSP formátumokat. Az elnevezési konvenciót követve a grails-app/views/cow/list.gsp fájlban kerül az a nézet, amely a CowController vezérlő list akciójához tartozik. Az elnevezések alapján a keretrendszer automatikusan elvégzi a hozzárendelést. Az alábbi példa egy GSP-ben írt nézetet mutat:

grails-app/views/cow/list.gsp
<html>
  <head>
    <title>Teheneink teljes listája</title>
  </head>
  <body>
    <h2>Teheneink teljes listája</h2>
    <ul>
      <g:each in="${cows}">
        <li>${it.name} (${it.name})</li>
      </g:each>
    </ul>
  </body>
</html>

Vezérlő (Controller)

grails-app/controllers/CowController.groovy
 class CowController {
    def list = {
       [ cows: Cow.findAll() ]
    }
 }

A vezérlők állítják elő a nézetektől kapott felhasználói inputok alapján a megjelenítendő adatszerkezeteket a nézetek számára. A konvenció szerint a vezérlők a grails-app/controllers/ mappában vannak. Egy jellemző művelet lehet a vezérlőben az összes példány listázása.

Perzisztencia

A Grails-ben az alkalmazásfejlesztő csak a tartományosztályokat definiálja, a perzisztencia a keretrendszer dolga. A Grails perzisztenciakezelője a GORM (Grails Object Relational Mapping), ami a a Hibernate perzisztáló mechanizmusára épít. Minden osztályhoz automatikusan hozzárendeli az id és a version adatmezőket és generálja a perzisztáláshoz szükséges metódusokkal.[2][3]

Osztálymetódusok

A GORM által kezelt tartományosztályok rendelkeznek a következő osztályszintű (static) metódusokkal.

metódus magyarázat példa
count() Az adott osztályból tárolt rekordok száma az adatbázisban.
def cowCount = Cow.count()
exists() Igazat ad vissza, ha létezik adott típusú rekord.
def cowExists = Cow.exists(1)
find() Visszaadja a feltételnek megfelelő első rekordot.
def cow = Cow.find("from Cow c where c.color = ?", [ 'Lila' ])
findAll() Visszaadja a feltételnek megfelelő rekordok listáját.
def cows = Cow.findAll("from Cow c where c.color = ?", [ 'Lila' ])
findBy*() Visszaadja a mintának megfelelő első rekordot.
def cow = Cow.findByColor("lila")
findBy*Like() Visszaadja a mintának megfelelő első rekordot.
def cow = Cow.findByColorLike("li%")
findAllBy*() Visszaadja a mintának megfelelő rekordok listáját.
def cows = Cow.findAllByColor("lila")
findAllBy*Like() Visszaadja a mintának megfelelő rekordok listáját.
def cows = Cow.findAllByColorLike("li%")
findWhere() Visszaadja az első olyan rekordot, ami megfelel a feltételeknek.
def cow = Cow.findWhere(color:"lila")
A lekérdezőnyelv szintaxisa HQL (Hibernate Query Language).

Példánymetódusok

A GORM által kezelt tartományosztályok példányváltoztói mindig rendelkeznek a következő perzisztáló metódusokkal:

metódus magyarázat példa
save() Menti az adott rekordot adatbázisba.
cow.save()
delete() Törli az adott rekordot adatbázisból.
cow.delete()
refresh() Aktualizálja az adott rekord állapotát az adatbázisból.
cow.refresh()
ident() Visszaadja az rekord azonosítóját az adatbázisból.
cow.ident()

Lásd még

Jegyzetek

Irodalom

Külső hivatkozások