> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/connectors/mariadb-connector-r2dbc/using-the-native-r2dbc-api-of-mariadb-connector-r2dbc.md).

# Using the Native R2DBC API of MariaDB Connector/R2DBC

Use MariaDB Connector/R2DBC directly through the native R2DBC API for reactive, non-blocking database access with fine-grained control.

{% columns %}
{% column %}
{% content-ref url="/pages/5etIXxyUzgcHa01tQ0y8" %}
[Application Development with MariaDB Connector/R2DBC (Native API)](/docs/connectors/mariadb-connector-r2dbc/using-the-native-r2dbc-api-of-mariadb-connector-r2dbc/application-development-with-mariadb-connector-r2dbc-native-api.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Application development with the MariaDB Connector/R2DBC native API covers building Java projects with Maven or JAR, adding the connector to the classpath, and running compiled applications.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/1g0mI2km7hORB6arsQYn" %}
[Batch Operations with MariaDB Connector/R2DBC (Native API)](/docs/connectors/mariadb-connector-r2dbc/using-the-native-r2dbc-api-of-mariadb-connector-r2dbc/batch-operations-with-mariadb-connector-r2dbc-native-api.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Batch operations with the MariaDB Connector/R2DBC native API group multiple DML statements into a single `io.r2dbc.spi.Batch` to reduce per-statement network overhead.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/5xbUbJNZ08C1mFmB05it" %}
[Connect with MariaDB Connector/R2DBC (Native API)](/docs/connectors/mariadb-connector-r2dbc/using-the-native-r2dbc-api-of-mariadb-connector-r2dbc/connect-with-mariadb-connector-r2dbc-native-api.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Connecting to MariaDB with the native R2DBC API uses `MariadbConnectionConfiguration` and `MariadbConnectionFactory` to create and manage reactive client connections via `io.r2dbc.spi.Connection`.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/NVN3uHgtZOYqpLZXBHMo" %}
[Connection Pools with MariaDB Connector/R2DBC (Native API)](/docs/connectors/mariadb-connector-r2dbc/using-the-native-r2dbc-api-of-mariadb-connector-r2dbc/connection-pools-with-mariadb-connector-r2dbc-native-api.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
The MariaDB Connector/R2DBC native API supports connection pooling via `r2dbc-pool`, holding reactive connections open for reuse and configuring them with `ConnectionPoolConfiguration`.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/t2KiVng7jurL7ol3Ooub" %}
[DDL with MariaDB Connector/R2DBC (Native API)](/docs/connectors/mariadb-connector-r2dbc/using-the-native-r2dbc-api-of-mariadb-connector-r2dbc/ddl-with-mariadb-connector-r2dbc-native-api.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
DDL operations with the MariaDB Connector/R2DBC native API execute schema statements such as `CREATE TABLE` and `ALTER TABLE` reactively using `io.r2dbc.spi.Statement` and `io.r2dbc.spi.Result`.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/TRcL9QRG7lN3J6c4g03q" %}
[DML with MariaDB Connector/R2DBC (Native API)](/docs/connectors/mariadb-connector-r2dbc/using-the-native-r2dbc-api-of-mariadb-connector-r2dbc/dml-with-mariadb-connector-r2dbc-native-api.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
DML with the MariaDB Connector/R2DBC native API executes `INSERT`, `UPDATE`, `DELETE`, and `SELECT` reactively using `io.r2dbc.spi.Statement`, `Result`, `Row`, and `RowMetadata` classes.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/fTJmAK2jCxxSp4Y7JN1P" %}
[Install MariaDB Connector/R2DBC](/docs/connectors/mariadb-connector-r2dbc/using-the-native-r2dbc-api-of-mariadb-connector-r2dbc/install-mariadb-connector-r2dbc.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Install MariaDB Connector/R2DBC via Maven by adding the `r2dbc-mariadb` dependency to `pom.xml`, or manually by downloading the JAR and adding it to the Java CLASSPATH alongside `r2dbc-pool`.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/s6WLcZy2sLHUnLPl7UtW" %}
[R2DBC Code Example (Native API)](/docs/connectors/mariadb-connector-r2dbc/using-the-native-r2dbc-api-of-mariadb-connector-r2dbc/r2dbc-code-example-native-api.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Complete Java code example using the MariaDB Connector/R2DBC native API to query a MariaDB table with `MariadbConnectionFactory` and reactive `Flux` result handling.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/LmIktmhw4YWbydCg6E9T" %}
[Setup for Connector/R2DBC Examples (Native API)](/docs/connectors/mariadb-connector-r2dbc/using-the-native-r2dbc-api-of-mariadb-connector-r2dbc/setup-for-connector-r2dbc-examples-native-api.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Set up the test database, contact table, and user account required by the MariaDB Connector/R2DBC native API code examples in this documentation section.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/9LMmrJYrx90vi9ZE17iS" %}
[Transactions with MariaDB Connector/R2DBC (Native API)](/docs/connectors/mariadb-connector-r2dbc/using-the-native-r2dbc-api-of-mariadb-connector-r2dbc/transactions-with-mariadb-connector-r2dbc-native-api.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
The MariaDB Connector/R2DBC native API requires manual subscription for `beginTransaction`, `commitTransaction`, and `rollbackTransaction`; Spring Data R2DBC provides managed transactions.
{% endcolumn %}
{% endcolumns %}
