olavloite / spanner-jdbc

JDBC Driver for Google Cloud Spanner
MIT License
38 stars 10 forks source link
google-cloud-spanner jdbc

Status

Build Status Quality Gate Coverage Reliability Rating Security Rating Maintainability Rating

DEPRECATED

Note: There is now a Google backed open source JDBC driver for Google Cloud Spanner. It is recommended that you use that driver. It can be found here: https://github.com/googleapis/java-spanner-jdbc

This community driver will continue to exist in its current form. It will however not implement any new features that Cloud Spanner might add in the future.

spanner-jdbc

Community Open Source JDBC Driver for Google Cloud Spanner

Include the following if you want the thick jar version that includes all (shaded) dependencies. This is the recommended version unless you know that the transitive dependencies of the small jar will not conflict with the rest of your project.

<dependency>
    <groupId>nl.topicus</groupId>
        <artifactId>spanner-jdbc</artifactId>
        <version>1.1.6</version>
</dependency>

Downloads for both the current and older versions can be found here: https://github.com/olavloite/spanner-jdbc/releases

Building your own version can be done using:

mvn install -DskipITs

(See the section Building for more information on this)

JPA and Hibernate

This driver can be used with JPA and Hibernate. It is however recommended to use the officially supported driver at https://github.com/googleapis/java-spanner-jdbc in combination with the officially supported Hibernate dialect.

Building

The driver is by default a 'thick' jar that contains all the dependencies it needs. The dependencies are shaded to avoid any conflicts with dependencies you might use in your own project. Shading and adding the dependencies to the jar is linked to the post-integration-test phase of Maven. This means that you could build both a thin and a thick jar to use with your project, but please be aware that only the thick jar version is supported. If you decide to use the thin jar you need to supply the dependencies yourself.

Building a thick jar (default)

mvn install -DskipITs

Skipping the integration tests while building is necessary as these will try to connect to a default Cloud Spanner instance (or Cloud Spanner emulator) to run the tests on. The key file for authenticating on these default instances are not included in the source code.

Building a thin jar (not recommended)

mvn package

This will give you a jar containing only the compiled source of the JDBC driver without the necessary dependencies. You will have to supply these yourself. This is not the recommended way of using the driver, unless you know what you are doing.

Credits

This application uses Open Source components. You can find the source code of their open source projects along with license information below.

A special thanks to Tobias for his great JSqlParser library. Project: JSqlParser https://github.com/JSQLParser/JSqlParser Copyright (C) 2004 - 2017 JSQLParser Tobias