miércoles, 20 de junio de 2018

Hacer un cliente Java que se conecte con Apache Cassandra.


Vamos a hacer un cliente java para conectarnos con Cassandra con Apache Maven.

Creemos un proyecto común con maven:

mvn -B archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.tuCompania.example -DartifactId=cassandra-client

De esta manera creamos el proyecto. Ahora necesitamos las librerías clientes de Cassandra, vamos a utilizar las que provee datastax, agregando la siguiente entrada en el pom.xml :

<dependency>
  <groupId>com.datastax.cassandra</groupId>
  <artifactId>cassandra-driver-core</artifactId>
  <version>3.5.0</version>
</dependency>

Y bueno, ahora hacemos:

mvn clean install

Y podemos escribir nuestro código:

package com.tuCompania.example;

import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Row;
import com.datastax.driver.core.Session;

public class App
{
    public static void main( String[] args ) {

        Cluster cluster = null;
        try {
            cluster = Cluster.builder()
                    .addContactPoint("127.0.0.1") //ip de cassandra
                    .build();
            Session session = cluster.connect();

            ResultSet rs = session.execute("select release_version from system.local");
            Row row = rs.one();
            System.out.println(row.getString("release_version"));
        }finally {
            if (cluster != null) cluster.close();
        }

    }
}

Para conectarnos a Cassandra  necesitamos un cluster (dado que Cassandra fue pensado para correr en varios servidores) y con el cluster obtenemos una conexión y luego una sesión y con esta sesión podemos hacer una consulta (en el ejemplo consultamos la versión de Cassandra) y esto nos retorna un Resulset (que es similar a el Resultset de jdbc) y listo!