Equery ( "cégtől")

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 * /

Script keletkezett

Script keletkezett

Nyilvánvaló, hogy ha egy servlet minden hozzáférést akkor újra létre SessionFactory tárgy, ez a folyamat túl időigényes szempontjából a rendszer teljesítményét, és a szempontból a fejlesztő a további bővítése a rendszer. Ezért meg kell hozzon létre egy osztályt, amelynek a feladata az lesz, hogy hozzon létre és inicializálja a szükséges létesítmények Configuration, SessionFacroty és az egyik módszer az osztály visszatér a kész tárgy Session. Ezért az eljárás a servlet tartalmának megjelenítéséhez az adatbázis táblák a képernyőn akkor a Session kifogást készen arra, hogy töltse be a paramétereket az érdeklődés.

A fent megadott sorrendben inicializálni a térképészeti-fájlt és a helyes manipulálni az adatbázis kapcsolat létre ConnectionFactory osztályban. Azt is megfigyelték, hogy bizonyos változatai hibernálás, annak ellenére, hogy az irányelv autoReconnect = true. automatikus újra az adatbázis kapcsolat lép fel a második alkalommal, vagyis a kapcsolat azonnal bekövetkezik, de van egy kivétel, a képtelenség, hogy csatlakozni az adatbázishoz.

/ * 8. példa: Az inicializálás térképezés és adatbázis kapcsolat:

Ez az osztály ellenőrzi a kapcsolatot az adatbázissal, és tárolja az ellenőrzést. Ha abban az időben a vizsgálati osztály a „tétlen” több, mint 10 perc alatt, akkor újra kapcsolatba az adatbázisba. Az eltávolítás esetén megakadályozza osztály memóriavesztés. Bár Hibernate megvannak az eszközei, hogy szükségtelenné, hogy az egyes hbm.xml fájlt egyenként, akkor jobb csinálni kézzel elkerülése érdekében a fenti hiba.

Ez az osztály kezeli a hibákat, amelyek a gyakorlatban előfordulnak, amikor dolgozik c Hibernate, JDBC illesztőprogram MySQL és MySQL adatbázis szerver.

A kölcsönhatás az adatbázis

Amikor dolgozik az adatbázis képességeivel kényelmesen tárgyak gyűjtése össze, és hozzon létre egy tranzakció vezetők.

/ * Példa # 9: A inicializálása feltérképezése és adatbázis kapcsolat. StudentDAO.java * /

public class StudentDAO

// ellenőrizzük a meglétét az adatbázist

public static logikai studentExists (String bejelentkezés)

Student _student = null;

// Létrehozunk egy adatbázis lekérdezés

"A tanuló ahol a.login =: login");

/ * Ez a módszer lehetővé teszi, így egyedülálló eredményeket. Szükség van a Secu-chit egyedülálló eredményeket az adatbázis szintjén, ha ez a funkció használható * /

_student = (Student) query.uniqueResult ();

> Fogás (HibernateException e)

SessionFactory osztály utal, hogy a thread-safe osztályok, így általában az objektum jön létre, amikor és tárolt statikus változó. Ha voltak problémák az adatbázis-kapcsolat medence egy
a kiadás az erőforrások, amelyek tárolják az objektum SessionFactory. akkor lehet, hogy támogatja a fenti megközelítést.

két megközelítést használnak Session Management:

Session minden adatbázis művelet egy-egy munkamenetet kérelem keretében a tranzakciót.

Kezdve 3.1 verzió, Hibernate egy új paramétert hibernate.current_session_context_class. amelyek közül az egyik szerint három értéke rövid, „JTA”, „menet” és a „kiválasztott”,
vagy osztályok az interfészt megvalósító org.hibernate.context.CurrentSessionContext és feladata lesz a nyitás / zárás az ülést.

Ha ez a paraméter be van állítva a konfigurációs fájlban, a script a munkamenet csak meg kell hívni SessionFactory.getCurrentSession () metódus, ami visszaadja vagy már kötött egy adott kontextusban ülés, vagy hozzon létre egy újat.

Állítsa be a tulajdonságokat a konfigurációs fájlban

cérna deleteStudent () módszer lehet újraírni az alábbiak szerint.

public static void deleteStudent (Student _student)

Tranzakciós tx = null;

> Fogás (HibernateException e)

Ebben az esetben a kapcsolat vezérlő hajtjuk osztály org.hibernate.context.ThreadLocalSessionContext, amely használja a kapcsolatot, amíg beginTransaction () metódus nem hívott,
és ennek megfelelően szabadítja fel a kapcsolatot, amikor egy hívás elkövetni () metódus vagy rollback ().

Fogytán az Apache Ant

Annak érdekében, hogy a projekt elindítása alól az Apache Ant, meg kell, hogy a projekt a mappák felépítése a következő:

build.xml fájl útmutatóként szolgál cselekvésre Ant. Kezdetben úgy kell kinéznie:

Kapcsolódó cikkek