Create a Data Access Object for Linear Data using JDBI
JDBI is a SQL convenience library for Java that exposes two different style APIs, a fluent style and a SQL object style. The CData JDBC Driver for Linear integrates connectivity to live Linear data in Java applications. By pairing these technologies, you gain simple, programmatic access to Linear data. This article explains how to build a basic Data Access Object (DAO) and the accompanying code to read Linear data.
Create a DAO for the Linear Team Entity
The interface below declares the desired behavior for the SQL object to create a single method for each SQL statement to be implemented.
public interface MyTeamDAO {
//request specific data from Linear (String type is used for simplicity)
@SqlQuery("SELECT name FROM Team WHERE key = :key")
String findnameBykey(@Bind("key") String key);
/*
* close with no args is used to close the connection
*/
void close();
}
Open a Connection to Linear
Collect the necessary connection properties and construct the appropriate JDBC URL for connecting to Linear.
You can authenticate to Linear with a personal API key or with OAuth 2.0. The API key is the simplest option for connecting with your own Linear account.
Authenticating with an API Key
Set the following connection properties:
- AuthScheme: Set this to APIKey.
- APIKey: A Linear personal API key.
To create a personal API key, log in to Linear, open Settings > Security & access > Personal API keys, select New API key, and create it. Copy the key immediately, because Linear shows it only once.
Authenticating with OAuth
OAuth requires a custom OAuth application registered in Linear (Settings > API > OAuth applications), which provides the OAuthClientId and OAuthClientSecret. Two flows are supported:
- Authorization code: Set AuthScheme to OAuth, InitiateOAuth to GETANDREFRESH, and provide OAuthClientId, OAuthClientSecret, and the CallbackURL defined in your application (e.g., http://localhost:33333). The driver opens Linear in your browser so you can grant access.
- Client credentials: Set AuthScheme to OAuthClient and provide OAuthClientId and OAuthClientSecret. This authenticates the application itself, with no browser interaction, and suits machine-to-machine integrations.
By default, the driver requests the read,write scopes. The driver refreshes the access token automatically when it expires.
Built-in Connection String Designer
For assistance in constructing the JDBC URL, use the connection string designer built into the Linear JDBC Driver. Either double-click the JAR file or execute the jar file from the command-line.
java -jar cdata.jdbc.linear.jar
Fill in the connection properties and copy the connection string to the clipboard.
A connection string for Linear will typically look like the following:
jdbc:linear:AuthScheme=APIKey;APIKey=myAPIKey;
Use the configured JDBC URL to obtain an instance of the DAO interface. The particular method shown below will open a handle bound to the instance, so the instance needs to be closed explicitly to release the handle and the bound JDBC connection.
DBI dbi = new DBI("jdbc:linear:AuthScheme=APIKey;APIKey=myAPIKey;");
MyTeamDAO dao = dbi.open(MyTeamDAO.class);
//do stuff with the DAO
dao.close();
Read Linear Data
With the connection open to Linear, simply call the previously defined method to retrieve data from the Team entity in Linear.
//disply the result of our 'find' method
String name = dao.findnameBykey("ENG");
System.out.println(name);
Since the JDBI library is able to work with JDBC connections, you can easily produce a SQL Object API for Linear by integrating with the CData JDBC Driver for Linear. Download a free trial and work with live Linear data in custom Java applications today.