Spring Data JDBC3.1.4

Spring Data JDBC, part of the larger Spring Data family, makes it easy to implement JDBC based repositories. This module deals with enhanced support for JDBC based data access layers. It makes it easier to build Spring powered applications that use data access technologies.

Spring Data JDBC is co-hosted with Spring Data R2DBC in the Spring Data Relational module providing infrastructure for direct SQL database access.

Spring Data JDBC aims at being conceptually easy. In order to achieve this it does NOT offer caching, lazy loading, write behind or many other features of JPA. This makes Spring Data JDBC a simple, limited, opinionated ORM.

The Aggregate Root

Spring Data repositories are inspired by the repository as described in the book Domain Driven Design by Eric Evans. One consequence of this is that you should have a repository per Aggregate Root. Aggregate Root is another concept from the same book and describes an entity which controls the lifecycle of other entities which together are an Aggregate. An Aggregate is a subset of your model which is consistent between method calls to your Aggregate Root.

Spring Data JDBC tries its best to encourage modeling your domain along these ideas.


  • CRUD operations for simple aggregates with customizable NamingStrategy.

  • Support for @Query annotations.

  • Support for MyBatis queries.

  • Events.

  • JavaConfig based repository configuration by introducing @EnableJdbcRepositories.

Spring Initializr

Quickstart Your Project

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Spring Runtime offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all