Udruživanje Oracle povezivanja s proljećem

1. Pregled

Oracle je jedna od najpopularnijih baza podataka u velikim proizvodnim okruženjima. Dakle, kao programeri Springa, vrlo je često potrebno raditi s tim bazama podataka.

U ovom uputstvu govorit ćemo o tome kako možemo izvršiti ovu integraciju.

2. Baza podataka

Prvo što trebamo je, naravno, baza podataka. Ako ga nemamo instaliran, možemo dobiti i instalirati bilo koju bazu podataka dostupnu na Oracle Database Software Downloads. Ali u slučaju da ne želimo izvršiti bilo kakvu instalaciju, možemo napraviti i bilo koju od slika Oracle baze podataka za Docker.

U ovom ćemo slučaju koristiti Oracle Database 12c, izdanje 2 (12.2.0.2) Slika Dockera u standardnom izdanju. Slijedom toga, ovo nas sprječava da moramo instalirati novi softver na svoje računalo.

3. Spajanje veza

Sada imamo bazu podataka spremnu za dolazne veze. Zatim, naučimo nekoliko različitih načina za spajanje veza u proljeće.

3.1. HikariCP

Najjednostavniji način spajanja veza s Springom je upotreba autokonfiguracije. The opruga-čizma-starter-jdbc ovisnost uključuje HikariCP kao preferirani izvor podataka za udruživanje. Stoga, ako bacimo pogled na naš pom.xml vidjet ćemo:

 org.springframework.boot spring-boot-starter-data-jpa 

The spring-boot-starter-data-jpa ovisnost uključuje opruga-čizma-starter-jdbc ovisnost tranzitivno za nas.

Sada samo moramo dodati našu konfiguraciju u primjena.svojstva datoteka:

# OracleDB postavke veze spring.datasource.url = jdbc: oracle: thin: @ // localhost: 11521 / ORCLPDB1 spring.datasource.username = books spring.datasource.password = books spring.datasource.driver-class-name = oracle. jdbc.OracleDriver # HikariCP postavke spring.datasource.hikari.minimumIdle = 5 spring.datasource.hikari.maximumPoolSize = 20 spring.datasource.hikari.idleTimeout = 30000 spring.datasource.hikari.maxLifetime = 2000000 spring.katatasource = 2000000 spring.kodatasource 30000 spring.datasource.hikari.poolName = HikariPoolBooks # JPA postavke spring.jpa.database-platform = org.hibernate.dialect.Oracle12cDialect spring.jpa.hibernate.use-new-id-generator-mappings = false spring.jpa.hibernate .ddl-auto = stvori

Kao što vidite, imamo tri različite postavke konfiguracije odjeljka:

  • The Postavke veze OracleDB u ovom smo odjeljku konfigurirali svojstva JDBC veze kao i uvijek
  • The Postavke HikariCP-a odjeljak je gdje konfiguriramo spremanje HikariCP veze. U slučaju da nam treba napredna konfiguracija, trebali bismo provjeriti popis svojstava konfiguracije HikariCP
  • The JPA postavke odjeljak je neka osnovna konfiguracija za korištenje hibernacije

To je sve što trebamo. Ne može biti lakše, zar ne?

3.2. Tomcat i Commons DBCP2 spajanje veza

Proljeće preporučuje HikariCP za njegovu izvedbu. S druge strane, također podržava Tomcat i Commons DBCP2 u automatski konfiguriranim programima Spring Boot.

Pokušava koristiti HikariCP. Ako nije dostupno, tada pokušava koristiti Tomcat udruživanje. Ako nijedno od njih nije dostupno, tada pokušava koristiti Commons DBCP2.

Također možemo odrediti spremište veza koje ćemo koristiti. U tom slučaju samo trebamo dodati novo svojstvo primjena.svojstva datoteka:

spring.datasource.type = org.apache.tomcat.jdbc.pool.DataSource

Ako trebamo konfigurirati određene postavke, dostupni su nam prefiksi:

  • proljeće.dataizvor.hikari. * za HikariCP konfiguraciju
  • spring.datasource.tomcat. * za konfiguraciju Tomcat spremanja
  • spring.datasource.dbcp2. * za Commons DBC2 konfiguraciju

I, zapravo, možemo postaviti Proljeće.izvor podataka.tip bilo kojem drugom Izvor podataka provedba. Nije potrebno biti niti jedan od gore spomenute tri.

Ali u tom ćemo slučaju imati samo osnovnu konfiguraciju. Bit će mnogo slučajeva kada će nam trebati neke napredne konfiguracije. Pogledajmo neke od njih.

3.3. Oracle Universal Connection Pooling

Ako želimo koristiti napredne konfiguracije, moramo izričito definirati Izvor podataka grah i postavite svojstva. Vjerojatno najlakši način za to je korištenje @Konfiguracija i @Grah bilješke.

Oracle Universal Connection Pool (UCP) za JDBC pruža cjelovitu implementaciju za predmemoriranje JDBC veza. Ponovno koristi veze umjesto da stvara nove. Također nam daje skup svojstava za prilagođavanje ponašanja bazena.

Ako želimo koristiti UCP, trebamo dodati sljedeće Mavenove ovisnosti:

 com.oracle.database.jdbc ojdbc8 com.oracle.database.ha ons com.oracle.database.jdbc ucp 

Sada smo spremni deklarirati i konfigurirati spremište UCP veza:

@Configuration @Profile ("oracle-ucp") javna klasa OracleUCPConfiguration {@Bean public DataSource dataSource () baca SQLException {PoolDataSource dataSource = PoolDataSourceFactory.getPoolDataSource (); dataSource.setUser ("knjige"); dataSource.setPassword ("knjige"); dataSource.setConnectionFactoryClassName ("oracle.jdbc.pool.OracleDataSource"); dataSource.setURL ("jdbc: oracle: thin: @ // localhost: 11521 / ORCLPDB1"); dataSource.setFastConnectionFailoverEnabled (true); dataSource.setInitialPoolSize (5); dataSource.setMinPoolSize (5); dataSource.setMaxPoolSize (10); vratiti dataSource; }}

U gornjem primjeru prilagodili smo neka svojstva bazena:

  • setInitialPoolSize specificira broj dostupnih veza stvorenih nakon pokretanja spremišta
  • setMinPoolSize određuje minimalni broj dostupnih i posuđenih veza koje naš bazen održava, i
  • setMaxPoolSize određuje maksimalan broj dostupnih i posuđenih veza koje održava naš bazen

Ako trebamo dodati još svojstava konfiguracije, trebali bismo provjeriti PoolDataSource JavaDoc ili vodič za programere.

4. Starije verzije Oraclea

Za verzije prije 11.2, poput Oracle 9i ili 10g, trebali bismo stvoriti OracleDataSource umjesto da koristi Oracleovo univerzalno spajanje veza.

U našem OracleDataSource Primjerice, uključujemo predmemoriranje veze putem setConnectionCachingEnabled:

@Configuration @Profile ("oracle") javna klasa OracleConfiguration {@Bean public DataSource dataSource () baca SQLException {OracleDataSource dataSource = new OracleDataSource (); dataSource.setUser ("knjige"); dataSource.setPassword ("knjige"); dataSource.setURL ("jdbc: oracle: thin: @ // localhost: 11521 / ORCLPDB1"); dataSource.setFastConnectionFailoverEnabled (true); dataSource.setImplicitCachingEnabled (true); dataSource.setConnectionCachingEnabled (true); vratiti dataSource; }}

U gornjem primjeru stvarali smo OracleDataSource za spremanje veza i konfigurirali neke parametre. Možemo provjeriti sve konfigurabilne parametre na OracleDataSource JavaDoc.

5. Zaključak

U današnje vrijeme konfiguriranje udruživanja Oracle povezivanja baze podataka pomoću Springa je kolač.

Vidjeli smo kako se to radi samo pomoću automatske konfiguracije i programski. Iako Spring preporučuje upotrebu HikariCP-a, dostupne su i druge mogućnosti. Morali bismo biti oprezni i odabrati pravu primjenu za naše trenutne potrebe.

I, kao i uvijek, cjelovit primjer možete pronaći na GitHubu.


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