A small demo app showing some features of Spring Boot for handling a Thymeleaf template, a JSON request, using Spring JdbcTemplate, with some Java records, lambdas and streams. The demo uses a server-side DataTable for the demo. Not intended for production use.
Source code is available here on GitHub.
The data source is a MySQL table:
The running application serves a DataTable similar to this one from the official documentation.
It runs at http://localhost:8080/demo/listing
The Java record
ServerSideRequest represents the automatically-generated request sent from DataTables to the server upon a change event - e.g when the user performs a sort, search or page change.
The Java record
ResponseContainer contains the response sent back from the server to DataTables for each request.
Most of the work to build the page of data to be displayed is handled by the
EmployeeService class. This implements the required sorting, filtering and pagination logic.
In my simple demo, I always fetch all rows from the source relational table, and then perform all processing in Java. In a more realistic production scenario, I would not do this, for obvious reasons - but for this demo, it’s not a problem.
Collation and normalization rules are used allow words with diacritics to be searched and sorted alongside words without diacritics. For example,
Édouard is sorted alongside
Edward; and a search for
éd will find both of these names.
See also Another Spring Boot Demo for DataTables Server-Side Processing, which is a similar approach - but which focuses on only selecting one page of DataTable results from the database.