A memóriában lévő adatbázisok listája

1. Áttekintés

A memóriában lévő adatbázisok az adatok tárolásához a rendszermemóriára támaszkodnak, szemben a lemezterülettel. Mivel a memória hozzáférés gyorsabb, mint a lemez, ezek az adatbázisok természetesen gyorsabbak.

Természetesen csak a memóriában lévő adatbázist használhatjuk olyan alkalmazásokban és forgatókönyvekben, ahol az adatokat nem kell kitartani, vagy a tesztek gyorsabb végrehajtása céljából. Gyakran beágyazott adatbázisként futnak, ami azt jelenti, hogy a folyamat indulásakor jönnek létre, és a folyamat befejezésekor elvetik, ami rendkívül kényelmes a teszteléshez, mivel nem kell külső adatbázist beállítania.

A következő szakaszokban: megnézzük a Java-környezetben leggyakrabban használt memória-adatbázisokat és az ezekhez szükséges konfigurációt.

2. H2 adatbázis

H2 egy Java-ban írt nyílt forráskódú adatbázis, amely támogatja a standard SQL-t mind a beágyazott, mind az önálló adatbázisokhoz. Nagyon gyors, és csak 1,5 MB körüli JAR-ban található.

2.1. Maven-függőség

Használni H2 egy adatbázisban, hozzá kell adnunk a következő függőséget:

 com.h2adatbázis h2 1.4.194 

A legújabb verzió a H2 az adatbázis letölthető a Maven Central oldalról.

2.2. Konfiguráció

Csatlakozás egy H2 memória-adatbázisban, használhatunk kapcsolatot Húr a protokollal mem, amelyet az adatbázis neve követ. A driverClassName, URL, felhasználónév és Jelszó tulajdonságok elhelyezhetők a .tulajdonságok fájl, amelyet alkalmazásunk olvashat:

driverClassName = org.h2.Driver url = jdbc: h2: mem: myDb; DB_CLOSE_DELAY = -1 felhasználónév = sa jelszó = sa

Ezek a tulajdonságok biztosítják a myDb az adatbázis automatikusan létrejön az alkalmazás indításakor.

Alapértelmezés szerint, ha az adatbázishoz való kapcsolat megszűnik, az adatbázis is bezáródik. Ha azt akarjuk, hogy az adatbázis addig tartson, amíg a JVM fut, akkor megadhatjuk a tulajdonságot DB_CLOSE_DELAY = -1

Ha az adatbázist hibernált állapotban használjuk, meg kell adnunk a hibernált dialektust is:

hibernate.dialect = org.hibernate.dialect.H2Dialect

H2 az adatbázist rendszeresen karbantartják, és részletesebb dokumentációt nyújt a h2database.com oldalon.

3. HSQLDB (HyperSQL Adatbázis)

HSQLDB egy nyílt forráskódú projekt, szintén Java nyelven írva, relációs adatbázist képviselve. Követi az SQL és a JDBC szabványokat, és támogatja az SQL szolgáltatásait, például a tárolt eljárásokat és a triggereket.

Használható in-memory módban, vagy konfigurálható a lemezes tárolás használatára.

3.1. Maven-függőség

Alkalmazás fejlesztése a HSQLDB, szükségünk van a Maven-függőségre:

 org.hsqldb hsqldb 2.3.4 

Megtalálja a legújabb verzióját HSQLDB a Maven Central-on.

3.2. Konfiguráció

A szükséges kapcsolat tulajdonságoknak a következő formátumuk van:

driverClassName = org.hsqldb.jdbc.JDBCDriver url = jdbc: hsqldb: mem: myDb felhasználónév = sa jelszó = sa

Ez biztosítja, hogy az adatbázis indításkor automatikusan létrejön, az alkalmazás időtartama alatt a memóriában marad, és a folyamat befejeztével törlődik.

A Hibernálás nyelvjárási tulajdona HSQLDB az:

hibernate.dialect = org.hibernate.dialect.HSQLDialect

A JAR fájl tartalmaz egy GUI-val rendelkező adatbázis-kezelőt is. További információ a hsqldb.org weboldalon található.

4. Apache Derby adatbázis

Apache Derby egy másik nyílt forráskódú projekt, amely a. által létrehozott relációs adatbázis-kezelő rendszert tartalmaz Apache Software Foundation.

Derby SQL és JDBC szabványokon alapul, és főleg beágyazott adatbázisként használják, de kliens-kiszolgáló módban is futtatható a Derby hálózati szerver keretrendszer.

4.1. Maven-függőség

Használni a Derby alkalmazás adatbázisában hozzá kell adnunk a következő Maven-függőséget:

 org.apache.derby derbi 10.13.1.1 

A legfrissebb verziója Derby adatbázis megtalálható a Maven Central oldalon.

4.2. Konfiguráció

A kapcsolati karakterlánc a memória jegyzőkönyv:

driverClassName = org.apache.derby.jdbc.EmbeddedDriver url = jdbc: derby: memória: myDb; create = true felhasználónév = sa jelszó = sa

Ahhoz, hogy az adatbázis automatikusan elinduljon az indításkor, meg kell adnunk létrehoz = igaz a kapcsolati karakterláncban. Az adatbázis alapértelmezés szerint zárva van, és a JVM kilépéskor eldobásra kerül.

Ha az adatbázist a Hibernálás, meg kell határoznunk a nyelvjárást:

hibernate.dialect = org.hibernate.dialect.DerbyDialect

Tudjon meg többet erről Derby adatbázis a db.apache.org/derby címen.

5. SQLite adatbázis

SQLite egy SQL adatbázis, amely csak beágyazott módban fut, akár a memóriában, akár fájlként mentve. C nyelven íródott, de Java-val is használható.

5.1. Maven-függőség

Használni egy SQLite adatbázishoz hozzá kell adnunk a JDBC illesztőprogram JAR-ját:

 org.xerial sqlite-jdbc 3.16.1 

Az sqlite-jdbc függőség letölthető a Maven Centralról.

5.2. Konfiguráció

A kapcsolat tulajdonságai a org.sqlite.JDBC vezető osztály és a memória protokoll a kapcsolati karakterlánchoz:

driverClassName = org.sqlite.JDBC url = jdbc: sqlite: memória: myDb felhasználónév = sa jelszó = sa

Ez létrehozza a myDb automatikusan, ha nem létezik.

Jelenleg Hibernálás nyelvjárást nem nyújt SQLite, bár a jövőben nagyon valószínű. Ha használni szeretné SQLite val vel Hibernálás, létre kell hoznia a HibernateDialect osztály.

További információkért SQLite, látogasson el az sqlite.org webhelyre.

6. Memóriában lévő adatbázisok a tavaszi indításkor

A Spring Boot különösen megkönnyíti a memóriában lévő adatbázis használatát - mert ezzel automatikusan létrehozhatja a konfigurációt H2, HSQLDB, és Derby.

Annak érdekében, hogy a Spring Boot három típusának egyikét használjuk, csak annyit kell tennünk, hogy hozzáadjuk a függőségét a pom.xml. Amikor a keretrendszer találkozik az osztályút függőségével, automatikusan beállítja az adatbázist.

7. Következtetés

Ebben a cikkben gyorsan áttekintettük a Java ökoszisztéma leggyakrabban használt memóriában lévő adatbázisait, azok alapvető konfigurációival együtt. Bár hasznosak a teszteléshez, ne feledje, hogy sok esetben nem ugyanolyan funkcionalitást nyújtanak, mint az eredeti önállóak.

Az ebben a cikkben használt kód példákat a Github oldalon találja.