[id='jdbc-cache-store_{context}']
= JDBC string-based cache stores
JDBC String-Based cache stores, `JdbcStringBasedStore`, use JDBC drivers to load and store values in the underlying database.

JDBC String-Based cache stores:

* Store each entry in its own row in the table to increase throughput for concurrent loads.
* Use a simple one-to-one mapping that maps each key to a `String` object using the `key-to-string-mapper` interface. +
{brandname} provides a default implementation, `DefaultTwoWayKey2StringMapper`, that handles primitive types.

In addition to the data table used to store cache entries, the store also creates a `_META` table for storing metadata.
This table is used to ensure that any existing database content is compatible with the current {brandname} version and configuration.

[NOTE]
====
By default {brandname} shares are not stored, which means that all nodes in the
cluster write to the underlying store on each update. If you want operations to
write to the underlying database once only, you must configure JDBC store as
shared.
====

.Segmentation

`JdbcStringBasedStore` uses segmentation by default and requires a column in the database table to represent the segments to which entries belong.

[role="_additional-resources"]
.Additional resources
* link:{javadocroot}/org/infinispan/persistence/jdbc/common/DatabaseType.html[DatabaseType Enum lists supported database dialects]
