A c3p0 használata hibernált állapotban
1. Áttekintés
Elég drága létrehozni az adatbázis-kapcsolatokat. Az adatbázis-összekapcsolás összevonása jól bevált módszer e kiadások csökkentésére.
Ebben az oktatóanyagban megvitatjuk, hogyan lehet a C3p0 hibernált állapotban használni a kapcsolatok gyűjtéséhez.
2. Mi az a c3p0?
c3p0 vanJava könyvtár, amely kényelmes módot kínál az adatbázis-kapcsolatok kezelésére.
Röviden, ezt úgy érheti el, hogy létrehoz egy kapcsolati készletet. Hatékonyan kezeli a Nyilatkozats és ResultSets használat után. Ez a takarítás azért szükséges, hogy az erőforrás-felhasználás optimalizálva legyen és elkerülhető holtpontok ne forduljanak elő.
Ez a könyvtár zökkenőmentesen integrálódik a különféle hagyományos JDBC illesztőprogramokkal. Ezenkívül egy réteget biztosít a DriverManager-alapú JDBC illesztőprogramok újabbhoz való adaptálásához javax.sql.DataSource rendszer.
És mivel a Hibernate támogatja a csatlakozást az adatbázisokhoz a JDBC-n keresztül, egyszerű a Hibernate és a c3p0 együttes használata.
3. A c3p0 konfigurálása hibernált állapotban
Most nézzük meg, hogyan konfigurálhatunk egy meglévő hibernált alkalmazást úgy, hogy a c3p0-t használja adatbázis-kapcsolatkezelőként.
3.1. Maven-függőségek
Először először hozzá kell adnunk a hibernate-c3p0 maven függőség:
org.hibernate hibernate-c3p0 5.3.6.Végső
Hibernate 5 esetén a fenti függőség hozzáadása elegendő a c3p0 engedélyezéséhez. Ez mindaddig érvényes, amíg nincs megadva más JDBC kapcsolatkészlet-kezelő.
Ezért a függőség hozzáadása után futtathatjuk az alkalmazást és ellenőrizhetjük a naplókat:
A c3p0-0.9.5.2 inicializálása [2015. december 08-án 22:06:04 -0800 készült; hibakeresés? igaz; nyom: 10] A c3p0 készlet inicializálása ... [e-mail védett] [... alapértelmezett beállítások ...]
Ha másik JDBC kapcsolatkészlet-kezelőt használunk, rákényszeríthetjük alkalmazásunkat a c3p0 használatára. Csak be kell állítanunk a szolgáltató_osztály nak nek C3P0ConnectionProvider tulajdonságfájlunkban:
hibernate.connection.provider_class = org.hibernate.connection.C3P0ConnectionProvider
3.2. Connection Pool tulajdonságai
Végül felül kell írnunk az alapértelmezett konfigurációt. Hozzáadhatunk egyedi tulajdonságokat a hibernate.cfg.xml fájl:
5 20 5 1800
Hasonlóképpen a hibernálni.tulajdonságok fájl ugyanazokat a beállításokat tartalmazhatja:
hibernate.c3p0.min_size = 5 hibernate.c3p0.max_size = 20 hibernate.c3p0.acquire_increment = 5 hibernate.c3p0.timeout = 1800
A min_size tulajdonság meghatározza a kapcsolatok minimális számát, amelyet mindenkor fenntartania kell. Alapértelmezés szerint legalább három kapcsolatot tart fenn. Ez a beállítás meghatározza a medence kezdeti méretét is.
A max_size tulajdonság meghatározza az adott pillanatban fenntartható kapcsolatok maximális számát. Alapértelmezés szerint maximum 15 kapcsolatot tart fenn.
A megszerzés_növekedés tulajdonság megadja, hogy hány kapcsolatot kell megpróbálnia megszerezni, ha a készletben nincsenek elérhető kapcsolatok. Alapértelmezés szerint megpróbál három új kapcsolatot megszerezni.
A időtúllépés tulajdonság megadja, hogy hány másodpercig maradjon meg egy fel nem használt kapcsolat, mielőtt eldobják. Alapértelmezés szerint a kapcsolatok soha nem járnak le a készletből.
A naplók újbóli ellenőrzésével ellenőrizhetjük az új készlet beállításait:
A c3p0-0.9.5.2 inicializálása [2015. december 08-án 22:06:04 -0800 készült; hibakeresés? igaz; nyom: 10] A c3p0 készlet inicializálása ... [e-mail védett] [... új beállítások ...]
Ezek az alapvető kapcsolatkészlet tulajdonságok. Ezenkívül más konfigurációs tulajdonságok megtalálhatók a hivatalos útmutatóban.
5. Következtetés
Ebben a cikkben megvitattuk, hogyan lehet a c3p0 hibernált állapotban használni. Megvizsgáltunk néhány általános konfigurációs tulajdonságot, és hozzáadtuk a c3p0-t egy tesztalkalmazáshoz.
A legtöbb környezetben javasoljuk, hogy a hagyományos JDBC illesztőprogramok helyett használjon kapcsolatkészlet-kezelőt, például c3p0 vagy HikariCP.
Szokás szerint az oktatóanyag teljes forráskódja elérhető a GitHubon.