Class JdbcDriver (2.33.1)
public class JdbcDriver implements Driver
JDBC Driver for Google Cloud Spanner.
Usage:
String url = "jdbc:cloudspanner:/projects/my_project_id/"
+ "instances/my_instance_id/databases/my_database_name?"
+ "credentials=/home/cloudspanner-keys/my-key.json;autocommit=false";
try (Connection connection = DriverManager.getConnection(url)) {
try(ResultSet rs = connection.createStatement().executeQuery("SELECT SingerId, AlbumId, MarketingBudget FROM Albums")) {
while(rs.next()) {
// do something
}
}
}
The connection that is returned will implement the interface CloudSpannerJdbcConnection.
The JDBC connection URL must be specified in the following format:
jdbc:cloudspanner:[//host[:port]]/projects/project-id[/instances/instance-id[/databases/database-name]][?property-name=property-value[;property-name=property-value]*]?
The property-value strings should be url-encoded.
The project-id part of the URI may be filled with the placeholder DEFAULT_PROJECT_ID. This
placeholder is replaced by the default project id of the environment that is requesting a
connection.
The supported properties are:
- credentials (String): URL for the credentials file to use for the connection. If you do not
specify any credentials at all, the default credentials of the environment as returned by
GoogleCredentials#getApplicationDefault() is used.
- autocommit (boolean): Sets the initial autocommit mode for the connection. Default is true.
- readonly (boolean): Sets the initial readonly mode for the connection. Default is false.
- autoConfigEmulator (boolean): Automatically configure the connection to try to connect to
the Cloud Spanner emulator. You do not need to specify any host or port in the connection
string as long as the emulator is running on the default host/port (localhost:9010). The
instance and database in the connection string will automatically be created if these do
not yet exist on the emulator. This means that you do not need to execute any
gcloud
commands on the emulator to create the instance and database before you can connect to it.
Setting this property to true also enables running concurrent transactions on the emulator.
The emulator aborts any concurrent transaction on the emulator, and the JDBC driver works
around this by automatically setting a savepoint after each statement that is executed.
When the transaction has been aborted by the emulator and the JDBC connection wants to
continue with that transaction, the transaction is replayed up until the savepoint that had
automatically been set after the last statement that was executed before the transaction
was aborted by the emulator.
- endpoint (string): Set this property to specify a custom endpoint that the JDBC driver
should connect to. You can use this property in combination with the autoConfigEmulator
property to instruct the JDBC driver to connect to an emulator instance that uses a
randomly assigned port numer. See ConcurrentTransactionOnEmulatorTest
for a concrete example of how to use this property.
- usePlainText (boolean): Sets whether the JDBC connection should establish an unencrypted
connection to the server. This option can only be used when connecting to a local emulator
that does not require an encrypted connection, and that does not require authentication.
- optimizerVersion (string): The query optimizer version to use for the connection. The value
must be either a valid version number or
LATEST
. If no value is specified, the
query optimizer version specified in the environment variable
SPANNER_OPTIMIZER_VERSION
is used. If no query optimizer version is specified in the
connection URL or in the environment variable, the default query optimizer version of Cloud
Spanner is used.
- oauthtoken (String): A valid OAuth2 token to use for the JDBC connection. The token must
have been obtained with one or both of the scopes
'https://www.googleapis.com/auth/spanner.admin' and/or
'https://www.googleapis.com/auth/spanner.data'. If you specify both a credentials file and
an OAuth token, the JDBC driver will throw an exception when you try to obtain a
connection.
- retryAbortsInternally (boolean): Sets the initial retryAbortsInternally mode for the
connection. Default is true. @see CloudSpannerJdbcConnection#setRetryAbortsInternally(boolean) for more information.
- minSessions (int): Sets the minimum number of sessions in the backing session pool.
Defaults to 100.
- maxSessions (int): Sets the maximum number of sessions in the backing session pool.
Defaults to 400.
- numChannels (int): Sets the number of gRPC channels to use. Defaults to 4.
- rpcPriority (String): Sets the priority for all RPC invocations from this connection.
Defaults to HIGH.
Static Fields
OPEN_TELEMETRY_PROPERTY_KEY
public static final String OPEN_TELEMETRY_PROPERTY_KEY
The info Properties object that is passed to the JDBC driver may contain an entry with
this key and an io.opentelemetry.api.OpenTelemetry instance as its value. This io.opentelemetry.api.OpenTelemetry instance will be used for tracing and metrics in the JDBC
connection.
Field Value |
Type |
Description |
String |
|
Static Methods
getClientLibToken()
public static String getClientLibToken()
Returns |
Type |
Description |
String |
|
Constructors
JdbcDriver()
Methods
acceptsURL(String url)
public boolean acceptsURL(String url)
Parameter |
Name |
Description |
url |
String
|
connect(String url, Properties info)
public Connection connect(String url, Properties info)
getMajorVersion()
public int getMajorVersion()
Returns |
Type |
Description |
int |
|
getMinorVersion()
public int getMinorVersion()
Returns |
Type |
Description |
int |
|
getParentLogger()
public Logger getParentLogger()
Returns |
Type |
Description |
Logger |
|
getPropertyInfo(String url, Properties info)
public DriverPropertyInfo[] getPropertyInfo(String url, Properties info)
Returns |
Type |
Description |
java.sql.DriverPropertyInfo[] |
|
jdbcCompliant()
public boolean jdbcCompliant()
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-10-11 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-10-11 UTC."],[],[]]