This documentation is for an out-of-date version of Apache Flink. We recommend you use the latest stable version.

JDBC Connector

This connector provides a sink that writes data to a JDBC database.

To use it, add the following dependency to your project (along with your JDBC-driver):


Note that the streaming connectors are currently NOT part of the binary distribution. See how to link with them for cluster execution here.

Created JDBC sink provides at-least-once guarantee. Effectively exactly-once can be achieved using upsert statements or idempotent updates.

Example usage:

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
                "insert into books (id, title, author, price, qty) values (?,?,?,?,?)",
                (ps, t) -> {
                    ps.setString(2, t.title);
                    ps.setDouble(4, t.price);
                    ps.setInt(5, t.qty);
                new JdbcConnectionOptions.JdbcConnectionOptionsBuilder()

Please refer to the API documentation for more details.