Batch Operations with MariaDB Connector/R2DBC (Native API)
Batch Operations
Class
Description
Code Example: Batching DML
//Module Imports
import org.mariadb.r2dbc.MariadbConnectionConfiguration;
import org.mariadb.r2dbc.MariadbConnectionFactory;
import io.r2dbc.spi.Batch;
import io.r2dbc.spi.Connection;
import reactor.core.publisher.Flux;
//Main Application Class
public class App {
// Connection Configuration
private static MariadbConnectionConfiguration conf;
private static MariadbConnectionFactory connFactory;
private static Connection conn;
// Main Process
public static void main(String[] args) {
//Initialize Connection Factory
initConnectionFactory();
// Add and Select Contacts in a batch operation
addAndSelectContacts();
}
public static void initConnectionFactory() {
try {
// Configure the Connection
conf = MariadbConnectionConfiguration.builder()
.host("192.0.2.1").port(3306)
.username("db_user").password("db_user_password")
.database("test").build();
// Instantiate a Connection Factory
connFactory = new MariadbConnectionFactory(conf);
} catch (java.lang.IllegalArgumentException e) {
System.err.println("Issue encountered while getting connection");
e.printStackTrace();
}
}
public static void addAndSelectContacts() {
try {
//Initialize a Connection
conn = connFactory.create().block();
//Create a Batch Object
Batch batch = conn.createBatch();
batch = batch.add("INSERT INTO test.contact (" + "first_name, last_name, email) VALUES" + "('Kai', 'Devi', 'kai.devi@example.com'), "
+ "('Lee', 'Wang', 'lee.wang@example.com'), " + "('Dani', 'Smith', 'dani.smith@example.com')").add("SELECT * FROM test.contact");
for (String contact_entry : Flux.from(batch.execute()).flatMap( res -> res.map( (row, metadata) -> {
return String.format("- %s %s <%s>",
row.get(1, String.class), // Get First Name
row.get(2, String.class), // Get Last Name
row.get(3, String.class)); // Get Email
})).toIterable()) {
System.out.println(contact_entry);
}
}
// Catch Exception
catch (IllegalArgumentException e) {
System.err.println("Issue running operation");
e.printStackTrace();
} finally {// Close Connection
conn.close();
}
}
}Example Output:
Code Example: Batching DDL
PreviousApplication Development with MariaDB Connector/R2DBC (Native API)NextConnect with MariaDB Connector/R2DBC (Native API)
Last updated
Was this helpful?

