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.


$config[zx-auto] not found$config[zx-overlay] not found