Build an application using Java
Maven
To build your Java application using the YugabyteDB version of the Jedis driver, add the following Maven dependency to your application:
<dependency>
<groupId>com.yugabyte</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0-yb-16</version>
</dependency>
Working example
Prerequisites
This tutorial assumes that you have:
- installed YugabyteDB, created a universe, and are able to interact with it using the Redis shell. If not, please follow these steps in Quick start.
- JDK version 1.8 or later
- Maven 3.3 or later
Create the Maven build file
Create a Maven build file pom.xml
and add the following content into it.
<?xml version="1.0"?>
<!-- Copyright (c) Yugabyte, Inc. -->
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.yugabyte.sample.apps</groupId>
<artifactId>hello-world</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.yugabyte</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0-yb-16</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<overWriteReleases>true</overWriteReleases>
<overWriteSnapshots>true</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Write a HelloWorld Java application
Create the appropriate directory structure as expected by Maven.
$ mkdir -p src/main/java/com/yugabyte/sample/apps
Copy the following contents into the file src/main/java/com/yugabyte/sample/apps/YBRedisHelloWorld.java
.
package com.yugabyte.sample.apps;
import java.util.HashMap;
import java.util.Map;
import redis.clients.jedis.Jedis;
public class YBRedisHelloWorld {
public static void main(String[] args) {
try {
// Create a Jedis client.
Jedis jedisClient = new Jedis("127.0.0.1");
// Prepare the employee information to insert.
String userid = "1";
Map<String, String> userProfile = new HashMap<String, String>();
userProfile.put("name", "John");
userProfile.put("age", "35");
userProfile.put("language", "Redis");
// Insert the data.
String result = jedisClient.hmset(userid, userProfile);
System.out.println("HMSET returned " + result + ": id=1, name=John, age=35, language=Redis");
// Query the data.
Map<String, String> userData = jedisClient.hgetAll(userid);
System.out.println("Query result: name=" + userData.get("name") +
", age=" + userData.get("age") + ", language=" + userData.get("language"));
// Close the client.
jedisClient.close();
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
}
}
Build and run the application
To build the application, run the following command.
$ mvn package
To start the application, run the following command.
% java -cp "target/hello-world-1.0.jar:target/lib/*" com.yugabyte.sample.apps.YBRedisHelloWorld
You should see the following as the output.
HMSET returned OK: id=1, name=John, age=35, language=Redis
Query result: name=John, age=35, language=Redis