Popis baza podataka u memoriji

1. Pregled

Baze podataka u memoriji oslanjaju se na sistemsku memoriju za razliku od prostora na disku za pohranu podataka. Budući da je pristup memoriji brži od pristupa disku, ove su baze podataka prirodno brže.

Dakako, bazu podataka u memoriji možemo koristiti samo u aplikacijama i scenarijima u kojima se podaci ne trebaju održavati ili u svrhu bržeg izvršavanja testova. Često se izvode kao ugrađene baze podataka, što znači da se kreiraju kad proces započne, a odbacuju kad proces završi, što je super ugodno za testiranje, jer ne trebate postavljati vanjsku bazu podataka.

U sljedećim odjeljcima, pogledati ćemo neke od najčešće korištenih baza podataka u memoriji za Java okruženje i konfiguraciju potrebnu za svaku od njih.

2. H2 baza podataka

H2 je baza podataka otvorenog koda napisana na Javi koja podržava standardni SQL i za ugrađene i za samostalne baze podataka. Vrlo je brz i nalazi se u JAR-u od samo oko 1,5 MB.

2.1. Ovisnost Mavena

Koristiti H2 baze podataka u aplikaciji, moramo dodati sljedeću ovisnost:

 com.h2data baza podataka h2 1.4.194 

Najnovija verzija H2 baza podataka može se preuzeti s Maven Central.

2.2. Konfiguracija

Za spajanje na H2 u memorijskoj bazi podataka, možemo koristiti vezu Niz uz protokol mem, nakon čega slijedi ime baze podataka. The driverClassName, URL, korisničko ime i zaporka svojstva se mogu smjestiti u .Svojstva datoteka koju će pročitati naša aplikacija:

driverClassName = org.h2.url vozača = jdbc: h2: mem: myDb; DB_CLOSE_DELAY = -1 korisničko ime = sa lozinka = sa

Ova svojstva osiguravaju myDb baza podataka stvara se automatski prilikom pokretanja aplikacije.

Prema zadanim postavkama, kada je veza s bazom podataka zatvorena, zatvara se i baza podataka. Ako želimo da baza podataka traje sve dok JVM radi, možemo navesti svojstvo DB_CLOSE_DELAY = -1

Ako koristimo bazu podataka s hibernacijom, također moramo navesti dijalekt hibernacije:

hibernate.dialect = org.hibernate.dialect.H2Dialect

H2 baza podataka redovito se održava i pruža detaljniju dokumentaciju na h2database.com.

3. HSQLDB (HyperSQL Baza podataka)

HSQLDB je projekt otvorenog koda, također napisan na Javi, koji predstavlja relacijsku bazu podataka. Slijedi SQL i JDBC standarde i podržava SQL značajke kao što su pohranjene procedure i okidači.

Može se koristiti u načinu rada u memoriji ili se može konfigurirati za upotrebu pohrane na disku.

3.1. Ovisnost Mavena

Za razvoj aplikacije pomoću HSQLDB, trebamo ovisnost o Mavenu:

 org.hsqldb hsqldb 2.3.4 

Možete pronaći najnoviju verziju HSQLDB na Maven Central.

3.2. Konfiguracija

Svojstva veze koja su nam potrebna imaju sljedeći format:

driverClassName = org.hsqldb.jdbc.JDBCDriver url = jdbc: hsqldb: mem: myDb korisničko ime = sa lozinka = sa

To osigurava da će se baza podataka automatski stvoriti prilikom pokretanja, zadržati u memoriji tijekom trajanja aplikacije i izbrisati kad proces završi.

The Hibernate dijalekatsko svojstvo za HSQLDB je:

hibernate.dialect = org.hibernate.dialect.HSQLDialect

JAR datoteka također sadrži Upravitelj baze podataka s GUI-jem. Više informacija možete pronaći na web mjestu hsqldb.org.

4. Apache Derby baza podataka

Apache Derby je još jedan projekt otvorenog koda koji sadrži relacijski sustav upravljanja bazama podataka koji je kreirao Apache Software Foundation.

derbi temelji se na SQL i JDBC standardima i uglavnom se koristi kao ugrađena baza podataka, ali se također može pokrenuti u načinu klijent-poslužitelj pomoću Mrežni poslužitelj Derby okvir.

4.1. Ovisnost Mavena

Da biste koristili a derbi baze podataka u aplikaciji, moramo dodati sljedeću Mavenovu ovisnost:

 org.apache.derby derbi 10.13.1.1 

Najnovija verzija derbi baza podataka može se naći na Maven Central.

4.2. Konfiguracija

Niz veze koristi memorija protokol:

driverClassName = org.apache.derby.jdbc.EmbeddedDriver url = jdbc: derby: memory: myDb; create = true username = sa password = sa

Da bi se baza podataka automatski kreirala prilikom pokretanja, moramo navesti stvoriti = istinito u nizu veze. Baza podataka je zatvorena i ispuštena prema zadanim postavkama na izlazu iz JVM-a.

Ako koristite bazu podataka sa Hibernate, moramo definirati dijalekt:

hibernate.dialect = org.hibernate.dialect.DerbyDialect

Možete pročitati više o derbi baza podataka na db.apache.org/derby.

5. SQLite baza podataka

SQLite je SQL baza podataka koja se izvodi samo u ugrađenom načinu, bilo u memoriji ili spremljena kao datoteka. Napisan je na jeziku C, ali se može koristiti i s Javom.

5.1. Ovisnost Mavena

Da biste koristili SQLite baze podataka, moramo dodati JDBC pokretački program JAR:

 org.xerial sqlite-jdbc 3.16.1 

Ovisnost sqlite-jdbc može se preuzeti s Maven Central.

5.2. Konfiguracija

Svojstva veze koriste org.sqlite.JDBC klasa vozača i memorija protokol za niz veze:

driverClassName = org.sqlite.JDBC url = jdbc: sqlite: memory: myDb username = sa password = sa

Ovo će stvoriti myDb baza podataka automatski ako ne postoji.

Trenutno, Hibernate ne pruža dijalekt za SQLite, iako će vrlo vjerojatno biti u budućnosti. Ako želite koristiti SQLite s Hibernate, morate stvoriti svoj HibernateDialect razred.

Da biste saznali više o SQLite, idite na sqlite.org.

6. In-Memory baze podataka u Spring Boot-u

Spring Boot posebno olakšava upotrebu baze podataka u memoriji - jer može automatski stvoriti konfiguraciju za H2, HSQLDB, i derbi.

Sve što trebamo učiniti da bismo koristili bazu podataka jedne od tri vrste u Spring Boot-u jest dodati svoju ovisnost o pom.xml. Kada okvir naiđe na ovisnost o putu predavanja, automatski će konfigurirati bazu podataka.

7. Zaključak

U ovom smo članku kratko pregledali najčešće korištene interno memorijske baze podataka u ekosustavu Java, zajedno s njihovim osnovnim konfiguracijama. Iako su korisni za testiranje, imajte na umu da u mnogim slučajevima ne pružaju potpuno istu funkcionalnost kao originalne samostalne.

Primjere koda korištene u ovom članku možete pronaći na Githubu.