Skip to content

Latest commit

 

History

History
 
 

google-cloud-spanner

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Google Cloud Java Client for Spanner

Java idiomatic client for Cloud Spanner.

Build Status Coverage Status Maven Codacy Badge Dependency Status

Note: This client is a work-in-progress, and may occasionally make backwards-incompatible changes.

Quickstart

If you are using Maven, add this to your pom.xml file

<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud-spanner</artifactId>
  <version>0.30.0-beta</version>
</dependency>

If you are using Gradle, add this to your dependencies

compile 'com.google.cloud:google-cloud-spanner:0.30.0-beta'

If you are using SBT, add this to your dependencies

libraryDependencies += "com.google.cloud" % "google-cloud-spanner" % "0.30.0-beta"

Authentication

See the Authentication section in the base directory's README.

About Cloud Spanner

Cloud Spanner is a fully managed, mission-critical relational database service built from the ground up and battle tested for transactional consistency, high availability, and global scale. With traditional relational semantics (schemas, ACID transactions, SQL) and automatic, synchronous replication for high availability, Cloud Spanner is the only database service of its kind on the market.

Be sure to activate the Cloud Spanner API on the Developer's Console to use Cloud Spanner from your project.

See the Spanner client lib docs to learn how to interact with Cloud Spanner using this Client Library.

Getting Started

Prerequisites

Please refer to the getting started guide.

Calling Cloud Spanner

Here is a code snippet showing a simple usage example. Add the following imports at the top of your file:

import com.google.cloud.spanner.DatabaseClient;
import com.google.cloud.spanner.DatabaseId;
import com.google.cloud.spanner.ResultSet;
import com.google.cloud.spanner.Spanner;
import com.google.cloud.spanner.SpannerOptions;
import com.google.cloud.spanner.Statement;

Then, to make a query to Spanner, use the following code:

// Instantiates a client
SpannerOptions options = SpannerOptions.newBuilder().build();
Spanner spanner = options.getService();
String instance = "my-instance";
String database = "my-database";
try {
  // Creates a database client
  DatabaseClient dbClient = spanner.getDatabaseClient(
    DatabaseId.of(options.getProjectId(), instance, database));
  // Queries the database
  ResultSet resultSet = dbClient.singleUse().executeQuery(Statement.of("SELECT 1"));
  // Prints the results
  while (resultSet.next()) {
    System.out.printf("%d\n", resultSet.getLong(0));
  }
} finally {
  // Closes the client which will free up the resources used
  spanner.closeAsync().get();
}

Complete source code

In DatabaseSelect.java we put together all the code shown above in a single program.

Troubleshooting

To get help, follow the instructions in the shared Troubleshooting document.

Transport

Spanner uses gRPC for the transport layer.

Java Versions

Java 7 or above is required for using this client.

Testing

This library has tools to help make tests for code using Cloud Spanner.

See TESTING to read more about testing.

Versioning

This library follows Semantic Versioning.

It is currently in major version zero (0.y.z), which means that anything may change at any time and the public API should not be considered stable.

Contributing

Contributions to this library are always welcome and highly encouraged.

See CONTRIBUTING for more information on how to get started.

License

Apache 2.0 - See LICENSE for more information.