Java idiomatic client for Cloud Spanner.
Note: This client is a work-in-progress, and may occasionally make backwards-incompatible changes.
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"
See the Authentication section in the base directory's README.
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.
Please refer to the getting started guide.
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();
}
In DatabaseSelect.java we put together all the code shown above in a single program.
To get help, follow the instructions in the shared Troubleshooting document.
Spanner uses gRPC for the transport layer.
Java 7 or above is required for using this client.
This library has tools to help make tests for code using Cloud Spanner.
See TESTING to read more about testing.
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.
Contributions to this library are always welcome and highly encouraged.
See CONTRIBUTING for more information on how to get started.
Apache 2.0 - See LICENSE for more information.