0
# Data Access Libraries
1
2
Database drivers, connection pools, ORM frameworks, and data access libraries with managed versions and compatibility guarantees. These libraries provide the foundation for data persistence in Spring Boot applications.
3
4
## Capabilities
5
6
### JDBC Drivers
7
8
Production-ready database drivers with optimized versions and exclusion management.
9
10
```gradle { .api }
11
// PostgreSQL
12
'org.postgresql:postgresql' // 42.7.7
13
14
// MySQL
15
'com.mysql:mysql-connector-j' // 9.2.0
16
17
// MariaDB
18
'org.mariadb.jdbc:mariadb-java-client' // 3.5.3
19
20
// Microsoft SQL Server
21
'com.microsoft.sqlserver:mssql-jdbc' // 12.10.0.jre11
22
23
// Oracle Database
24
'com.oracle.database.jdbc:ojdbc11' // 23.7.0.25.01
25
'com.oracle.database.jdbc:ojdbc17' // 23.7.0.25.01
26
'com.oracle.database.jdbc:ucp' // 23.7.0.25.01
27
28
// H2 Database (embedded)
29
'com.h2database:h2' // 2.3.232
30
31
// HSQLDB (embedded)
32
'org.hsqldb:hsqldb' // 2.7.3
33
34
// Apache Derby (embedded)
35
'org.apache.derby:derby' // 10.16.1.1
36
37
// SQLite
38
'org.xerial:sqlite-jdbc' // 3.49.1.0
39
40
// IBM DB2
41
'com.ibm.db2:jcc' // 12.1.2.0
42
43
// Firebird
44
'org.firebirdsql.jdbc:jaybird' // 6.0.2
45
46
// jTDS (alternative SQL Server/Sybase driver)
47
'net.sourceforge.jtds:jtds' // 1.3.1
48
```
49
50
### Connection Pooling
51
52
High-performance connection pools with production-tested configurations.
53
54
```gradle { .api }
55
// HikariCP (default Spring Boot connection pool)
56
'com.zaxxer:HikariCP' // 6.3.0
57
58
// Apache Commons DBCP2
59
'org.apache.commons:commons-dbcp2' // 2.13.0
60
61
// Commons Pool2 (DBCP2 dependency)
62
'org.apache.commons:commons-pool2' // 2.12.1
63
64
// Vibur DBCP
65
'org.vibur:vibur-dbcp' // 26.0
66
```
67
68
### R2DBC Drivers
69
70
Reactive database connectivity drivers for non-blocking data access.
71
72
```gradle { .api }
73
// R2DBC SPI (core specification)
74
'io.r2dbc:r2dbc-spi' // 1.0.0.RELEASE
75
76
// Connection pooling for R2DBC
77
'io.r2dbc:r2dbc-pool' // 1.0.2.RELEASE
78
79
// Proxy support for R2DBC
80
'io.r2dbc:r2dbc-proxy' // 1.1.6.RELEASE
81
82
// PostgreSQL R2DBC driver
83
'org.postgresql:r2dbc-postgresql' // 1.0.7.RELEASE
84
85
// MySQL R2DBC driver
86
'io.asyncer:r2dbc-mysql' // 1.4.1
87
88
// MariaDB R2DBC driver
89
'org.mariadb:r2dbc-mariadb' // 1.3.0
90
91
// Microsoft SQL Server R2DBC driver
92
'io.r2dbc:r2dbc-mssql' // 1.0.2.RELEASE
93
94
// H2 R2DBC driver
95
'io.r2dbc:r2dbc-h2' // 1.0.0.RELEASE
96
97
// Oracle R2DBC driver
98
'com.oracle.database.r2dbc:oracle-r2dbc' // 1.3.0
99
```
100
101
### ORM and JPA
102
103
Object-relational mapping frameworks with Spring integration.
104
105
```gradle { .api }
106
// Hibernate ORM
107
'org.hibernate.orm:hibernate-core' // 6.6.18.Final
108
'org.hibernate.orm:hibernate-envers' // 6.6.18.Final
109
'org.hibernate.orm:hibernate-spatial' // 6.6.18.Final
110
'org.hibernate.orm:hibernate-jcache' // 6.6.18.Final
111
'org.hibernate.orm:hibernate-micrometer' // 6.6.18.Final
112
113
// Hibernate connection pool integrations
114
'org.hibernate.orm:hibernate-hikaricp' // 6.6.18.Final
115
'org.hibernate.orm:hibernate-c3p0' // 6.6.18.Final
116
'org.hibernate.orm:hibernate-proxool' // 6.6.18.Final
117
'org.hibernate.orm:hibernate-vibur' // 6.6.18.Final
118
119
// Hibernate Validator
120
'org.hibernate.validator:hibernate-validator' // 8.0.2.Final
121
'org.hibernate.validator:hibernate-validator-annotation-processor' // 8.0.2.Final
122
123
// Jakarta Persistence API
124
'jakarta.persistence:jakarta.persistence-api' // 3.1.0
125
```
126
127
### Type-Safe SQL
128
129
Type-safe SQL query builders and DSLs.
130
131
```gradle { .api }
132
// jOOQ
133
'org.jooq:jooq' // 3.19.24
134
'org.jooq:jooq-codegen' // 3.19.24
135
'org.jooq:jooq-meta' // 3.19.24
136
'org.jooq:jooq-kotlin' // 3.19.24
137
138
// QueryDSL
139
'com.querydsl:querydsl-core' // 5.1.0
140
'com.querydsl:querydsl-jpa' // 5.1.0
141
'com.querydsl:querydsl-sql' // 5.1.0
142
```
143
144
### Database Migration
145
146
Schema migration and database change management tools.
147
148
```gradle { .api }
149
// Flyway
150
'org.flywaydb:flyway-core' // 11.7.2
151
'org.flywaydb:flyway-mysql' // 11.7.2
152
'org.flywaydb:flyway-database-postgresql' // 11.7.2
153
'org.flywaydb:flyway-database-oracle' // 11.7.2
154
'org.flywaydb:flyway-sqlserver' // 11.7.2
155
156
// Liquibase
157
'org.liquibase:liquibase-core' // 4.31.1
158
'org.liquibase:liquibase-cdi' // 4.31.1
159
```
160
161
### NoSQL Databases
162
163
NoSQL database drivers and clients with Spring Data integration.
164
165
```gradle { .api }
166
// MongoDB
167
'org.mongodb:mongodb-driver-core' // 5.5.1
168
'org.mongodb:mongodb-driver-sync' // 5.5.1
169
'org.mongodb:mongodb-driver-reactivestreams' // 5.5.1
170
171
// Redis
172
'redis.clients:jedis' // 6.0.0
173
'io.lettuce:lettuce-core' // 6.6.0.RELEASE
174
175
// Cassandra
176
'org.apache.cassandra:java-driver-core' // 4.19.0
177
178
// Couchbase
179
'com.couchbase.client:java-client' // 3.8.1
180
181
// Neo4j
182
'org.neo4j.driver:neo4j-java-driver' // 5.28.5
183
184
// Elasticsearch
185
'org.elasticsearch.client:elasticsearch-rest-client' // 8.18.1
186
'co.elastic.clients:elasticsearch-java' // 8.18.1
187
```
188
189
### Cache Providers
190
191
Caching implementations with JCache (JSR-107) support.
192
193
```gradle { .api }
194
// JCache API (JSR-107)
195
'javax.cache:cache-api' // 1.1.1
196
197
// Caffeine (high-performance cache)
198
'com.github.ben-manes.caffeine:caffeine' // 3.2.1
199
'com.github.ben-manes.caffeine:jcache' // 3.2.1
200
201
// Ehcache
202
'org.ehcache:ehcache' // 3.10.8
203
'org.ehcache:ehcache-clustered' // 3.10.8
204
205
// cache2k
206
'org.cache2k:cache2k-core' // 2.6.1.Final
207
'org.cache2k:cache2k-jcache' // 2.6.1.Final
208
209
// Hazelcast
210
'com.hazelcast:hazelcast' // 5.5.0
211
'com.hazelcast:hazelcast-spring' // 5.5.0
212
213
// Infinispan
214
'org.infinispan:infinispan-core' // 15.2.4.Final
215
'org.infinispan:infinispan-spring6-embedded' // 15.2.4.Final
216
```
217
218
## Usage Examples
219
220
### Basic JPA Setup
221
222
```gradle
223
dependencies {
224
implementation platform('org.springframework.boot:spring-boot-dependencies:3.5.3')
225
226
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
227
runtimeOnly 'org.postgresql:postgresql'
228
229
testImplementation 'org.springframework.boot:spring-boot-starter-test'
230
testImplementation 'com.h2database:h2'
231
}
232
```
233
234
### Reactive Data Access
235
236
```gradle
237
dependencies {
238
implementation platform('org.springframework.boot:spring-boot-dependencies:3.5.3')
239
240
implementation 'org.springframework.boot:spring-boot-starter-data-r2dbc'
241
runtimeOnly 'org.postgresql:r2dbc-postgresql'
242
runtimeOnly 'io.r2dbc:r2dbc-pool'
243
244
testImplementation 'org.springframework.boot:spring-boot-starter-test'
245
testImplementation 'io.r2dbc:r2dbc-h2'
246
}
247
```
248
249
### NoSQL with Caching
250
251
```gradle
252
dependencies {
253
implementation platform('org.springframework.boot:spring-boot-dependencies:3.5.3')
254
255
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
256
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
257
implementation 'org.springframework.boot:spring-boot-starter-cache'
258
implementation 'com.github.ben-manes.caffeine:caffeine'
259
260
testImplementation 'org.springframework.boot:spring-boot-starter-test'
261
}
262
```
263
264
### Multi-Database Setup
265
266
```gradle
267
dependencies {
268
implementation platform('org.springframework.boot:spring-boot-dependencies:3.5.3')
269
270
// Primary database (JPA)
271
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
272
runtimeOnly 'org.postgresql:postgresql'
273
274
// Secondary database (MongoDB)
275
implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
276
277
// Caching layer (Redis)
278
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
279
280
// Database migrations
281
implementation 'org.flywaydb:flyway-core'
282
implementation 'org.flywaydb:flyway-database-postgresql'
283
284
testImplementation 'org.springframework.boot:spring-boot-starter-test'
285
testImplementation 'org.testcontainers:postgresql'
286
testImplementation 'org.testcontainers:mongodb'
287
}
288
```
289
290
### Type-Safe Query Building
291
292
```gradle
293
dependencies {
294
implementation platform('org.springframework.boot:spring-boot-dependencies:3.5.3')
295
296
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
297
implementation 'org.jooq:jooq'
298
implementation 'com.querydsl:querydsl-jpa'
299
300
runtimeOnly 'org.postgresql:postgresql'
301
302
testImplementation 'org.springframework.boot:spring-boot-starter-test'
303
}
304
```