27 Ocak 2021 Çarşamba

SpringData R2DBC

Giriş
SpringWebFlux ile klasik JDBC sürücüsü kullanan veri tabanlarını kullanabilmeyi sağlar

Örnek - mysql
Normalde mysql-connector-java gerekir ancak R2DBC için dev.miku:r2dbc-mysql kullanmak gerekir.

Örnek - postgre
Şu satırı dahil ederiz
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-r2dbc</artifactId>
</dependency>
<dependency>
<dependency>
  <groupId>io.r2dbc</groupId>
  <artifactId>r2dbc-postgresql</artifactId>
  <scope>runtime</scope>
</dependency>
<dependency>
  <groupId>org.postgresql</groupId>
  <artifactId>postgresql</artifactId>
  <scope>runtime</scope>
</dependency>
Örnek - h2
Şu satırı dahil ederiz
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-r2dbc</artifactId>
</dependency>

<dependency>
  <groupId>io.r2dbc</groupId>
  <artifactId>r2dbc-h2</artifactId>
</dependency>

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
  <groupId>com.h2database</groupId>
  <artifactId>h2</artifactId>
  <scope>runtime</scope>
</dependency>
ConnectionFactoryInitializer Sınıfı
Örnek
Uygulama açılırken schema.sql içindeki CREATE TABLE cümlelerini çalıştırmak için şöyle yaparız
import org.springframework.data.r2dbc.connectionfactory.init.ConnectionFactoryInitializer;
import org.springframework.data.r2dbc.connectionfactory.init.ResourceDatabasePopulator;

@Bean
public ConnectionFactoryInitializer connectionFactoryInitializer(
ConnectionFactory connectionFactory){
  ConnectionFactoryInitializer initializer = new ConnectionFactoryInitializer();
  initializer.setConnectionFactory(connectionFactory);

  ResourceDatabasePopulator populator = new ResourceDatabasePopulator(
new ClassPathResource("schema.sql"),
    new ClassPathResource("data.sql"));
  initializer.setDatabasePopulator(populator);
  return initializer;
}
DatabaseClient Sınıfı
DatabaseClient Sınıfı yazısına taşıdım

Hiç yorum yok:

Yorum Gönder