Configuration, session és SessionFactory

Alatta kap több lehetőséget beállítani Hibernate. Configuration vagy térképezés (mapping) általában egyszer végezzük
alkalmazáson belül. A specifikus konfigurációs tartalmazza az objektum net.sf.hibernate.cfg.Configuration osztályban.

privát Configuration createConfiguration ()

dob ClassNotFoundException, MappingException

új konfiguráció () .addClass (Class.forName ( "courses.hiber.Course"))

Ez a módszer létrehoz egy új konfigurációt, és hozzáadja az osztályok és courses.hiber.Course courses.hiber.Student (ez a kiegészítés csak akkor szükséges, ha a leképezés-fájlok nem határozza meg a konfigurációs fájl, a Hibernate). Hibernate feltérképezése keres a fentebb már említett elvvel. A konfiguráció is hozzá más források feltérképezése, mint például egy adatfolyam, jar-fájl, org.dom4j.Document. addClass () eljárás visszatér konfigurációs objektumot. így nevezte többször is. További hozzáadódik a kérelmet generáló módszer egy adatbázis konfigurációs táblák.

Hibernate tartalmaz egy konzol alkalmazás generáló szkriptet. A következő kód SchemaExport objektumot generál egy adatbázis tábla feltérképezése kialakítva és a tulajdonságokat írja szöveg
Egy fájl (c: /temp/courses_script.sql), és végrehajtja a generált SQL-kódot.

magán void generateAndExecuteCreationScript (Configuration konfiguráció, tulajdonságai Tulajdonságok) dob HibernateException

SchemaExport kiviteli = új SchemaExport (konfiguráció, tulajdonságok);

export.setOutputFile ( "c: \\ temp \\ courses_script.sql") .create (true.)

A módszer létrehozása (true, true) script által generált szöveget hozzon létre a táblák és a konzolra (meghatározva az első érv - igaz), és ennek alapján van az adatbázis tábla (a második paraméter - igaz).

Session - egy olyan interfész használható tárolásra az adatbázisban, és visszaállítani Course kifogást osztályok és hallgatói. SessionFactory - szálkezelést, megváltoztathatatlan cache összeállított leképezést az adatbázis, a gyár létrehozásához Session tárgyakat.

1. Hozzon létre egy SessionFactory

. SessionFactory gyári = new Configuration () .configure () buildSessionFactory ();

konfigurálja módszer () Configuration belép osztályú információkat
a konfigurációs objektumot a Hibernate konfigurációs fájl;

2. Készítsen ülés

Munkamenet munkamenet = factory.openSession ();

3. Vegye ki az összes sort a pályára és a hallgatói tábla. A szöveg kérések
és parancsokat írt Hibernate-nyelvjárást. Ez hasonló az SQL, mint ahogy a szervezet-adathordozók vannak az osztályok, nem táblázatokat.

List tanfolyamok = session.find ( "a pálya");

List diák = session.find ( "a hallgatói");

4. A kezelés végén leállításával.

Net.sf.hibernate.SessionFactory felület tartalmaz néhány lényeges módszerek:

openSession () - létrehoz egy adatbázis-kapcsolatot, és megnyitja az ülést. A paraméter lehet továbbítani, és kapcsolatot fognak létrehozni egy meglévő munkamenet kapcsolat;

close () - SessionFactory pusztítás és a kiadás összes felhasznált források az objektumot.

net.sf.hibernate.Session felület - egy szálon, rövid életű tárgy, a közvetítő és az alkalmazás közötti tárolása hosszú élettartamú tárgyak segítségével navigálhat az objektum grafikont, vagy keressen tárgyak azonosító alapján. Tény, hogy ez egy wrapper class körül JDBC-kapcsolat. Ugyanakkor egy gyári Tranzakció objektumokat.

terhelés (Class theClass, Serializable id) - visszaadja egy objektum az osztály a megadott azonosító;

terhelés (Object objektum, Serializable id) - betölti egy állandó állapota az objektum a megadott azonosítót az objektumot, amelynek pointer továbbításra került;

menteni (Object objektum [, Serializable id]) - tárolja az átvitt objektum. Ha kapnak egy azonosítót használja;

frissítés (Object objektum [, Serializable id]) - frissíti a perzisztens objektum objektum azonosító, és ha a továbbított azonosító, frissíti az objektum az említett azonosítóhoz;

saveOrUpdate (Object objektum) - függvényében az azonosító értéket elmenti vagy frissíti a tárgy;

kap (Class osztály, Serializable id) - visszaadja az objektum-CIÓ adott osztályban a megadott azonosító vagy null. Ha nincs;

törlése (Object objektum) - eltávolítja az objektumot az adatbázisból;

törlése (String query) - távolítsa el az összes tárgyat kérésre megkapható. Szintén lehetséges, hogy törölje a hívás kérés paraméterei (String lekérdezés,
Object [] objektumok Típus [] típusú);

Tranzakciós beginTransaction () - elindít egy munkaegység
és visszaadja a kapcsolódó tranzakciót.

Hogy lekérdezésre használt interfeysaorg.hibernate.Query fokon. Ez alkalmazásával állíthatjuk elő az objektumot Session:

InterfeysQuery a következő módszerek:

list () - végrehajt egy lekérdezést, az eredményt akkor egy listában gyűjtemény;

executeUpdate () -, hogy készítsen törléseket, megváltoztatja alkalmazandó sok tárgy;

. Session.createQuery ( "törölni Company ahol status =" zárt") executeUpdate ();

setString (int index, karakterlánc-érték). setDate (), stb ... -
beállítja a paramétert egy lekérdezést az index;

session.createQuery ( "törölni Company ahol status =?") setString (0, 'zárt') executeUpdate () ..;

Azt is beállíthatja a paraméter neve:

session.createQuery ( "törölni Company ahol status =: stat") setString (stat ", 'zárt') executeUpdate (); ..

hajtogat () - visszaadja egy Iterátor a lekérdezés eredményét

. Iterátor it = createQuery ( "re Társaság") hajtogat ();

A hosszú életű objektumok és gyűjtemények (perzisztens objektumok és gyűjtemények) - egy egyszálú, rövid életű tartalmazó tárgy tartós állapot
és az üzleti funkciók. Lehet normális JavaBeannel / POJO (Plain Old Java objektumok) tárgyak, ezek megkülönböztető jellemzője - az, hogy vannak társítva egy alkalommal (Session). Miután a munkamenet le van zárva, ezeket a tárgyakat leszakadnak, és szabadon használható bármilyen alkalmazási réteg, például közvetlenül az adatátvitelt kifogásolja a megjelenítési réteg, és vele.

Ideiglenes objektumok és gyűjtemények (tranziens objektumok és gyűjtemények) - olyan esetek, tartós osztályok, amelyek nem kapcsolódnak az adott pillanatban
egy munkamenet (Session). Ez lehet a tárgyak által létrehozott alkalmazás, és abban a pillanatban még nem fordították le egy hosszú életű állam.

Tranzakciós net.sf.hibernate.Transaction - egyszálú, rövid életű tárgy az alkalmazás által használt adja atomegység munka. Ő elvonatkoztat az alkalmazást a mögöttes JDBC, JTA vagy CORBA tranzakciót. Bizonyos esetekben egy alkalommal (Session) adhat okot, hogy több tranzakciót:

elkövetni () - rögzíti adatbázis-tranzakció;

rollback () - arra kényszerítve az ügylet, hogy menjen vissza.

Interface net.sf.hibernate.connection.ConnectionProvider a biztosító vegyületek gyár és medence JDBC-kapcsolat. Ez elvonatkoztat az alkalmazást a mögöttes Datasource tárgyak vagy DriverManager. Hibernate belső objektum nem érhető el az alkalmazás, de lehet hosszabbítani, vagy végre a fejlesztő. módszerek:

close () - feloldja a források birtokában a beszállítói kapcsolatok;

closeConnection (Connection conn) - bezárja az alkalmazott vegyület;

beállítani (Tulajdonságok kellékek) - inicializálja a vegyületek a továbbított szolgáltató tulajdonságait.

Tranzakciós Factory net.sf.hibernate.TransactionFactory - gyári Transaction esetekben az osztály. Hibernate belső objektum nem érhető el az alkalmazás, de azt is meg kell hosszabbítani, vagy végre a fejlesztő.

beginTransaction (SessionImplementor ülés) - kezdődik a tranzakciót, és visszaadja az objektumot.

A legegyszerűbb alkalmazása a fenti osztályok nyilvánított hozzáadásával
servlet megvalósítások generateAndExecuteCreationScript () módszerek
és createProperties () a következő:

/ * 5. példa: Csak használja a hibernálás. MainServlet.java * /

Kapcsolódó cikkek