Using SQLDataProvider with Vaadin 8 and 10

The Vaadin-on-Kotlin framework contained the support for feeding the outcome of a SQL query to the Vaadin Grid for the long time. However, since VoK is based on Kotlin, Java developers probably avoided this solution and looked for a Java-based example. Well, here it is:

Both of the examples are pure Java, even though the project uses code from Vaadin-on-Kotlin. The Kotlin stdlib is only included as a run-time dependency - the example projects contains no Kotlin code and doesn’t even run the Kotlin compiler.

The example projects demo the following features:

  • A full-fledged implementation of the SQLDataProvider, which supports paging, sorting and filtering.
  • A FilterBar for Grid, with auto-generated filtering UI components, passing filters to the SQLDataProvider. This is a direct replacement for the FilteringTable Add-On, but it targets Vaadin 8 Grid as opposed to FilteringTable targeting Vaadin 7-compat Grid.
  • The FilterBar is also available for Vaadin 10, targeting native Vaadin 10 Grid.

The example projects use Maven as the build system.

The SQLDataProvider connects to the database directly, using the VoK-ORM library; by default a direct access to a JDBC DataSource is required, and the JDBC connections are pooled using the Hikari-CP connection pooler. However, if you’re running in a Spring or JavaEE container, you can override this behavior, see Vok-ORM documentation for details.

Edit: JPADataProvider

For those of you who just can’t let go, I’ve prepared a full-fledged JPADataProvider example, with filtering, sorting and filter bar: Vaadin 8 JPADataProvider Example with a live demo.

Written on September 6, 2018