2016-08-16 2 views
0

Я пытаюсь подключиться к Cassandra с помощью драйвера JDBC. Моя Cassandra версия 2.2.4 и Java 1.7.0_101:Подключиться к Cassandra с помощью драйвера JDBC

Class.forName("org.apache.cassandra.cql.jdbc.CassandraDriver"); 
Connection con = DriverManager.getConnection("jdbc:cassandra://10.11.15.242:9160/edgeview"); 

Где "edgeview" мое пространство ключи. Я подключился к cassandra, используя порт 9160, потому что он не позволяет мне подключаться без библиотеки libthrift (библиотека кросс-языка).

Если я пытаюсь запросить cassandra, он всегда дает мне ошибку как «Индекс строки вне диапазона: -1».

Кажется, что проблема совместимости, так как многие мои данные говорят, что Cassandra 2.2+ с осторожностью устарела.

Любая помощь в том, как я могу продолжить это?

Thanx заранее

ответ

0

Я не знаю, если это является обязательным для вас использовать JDBC. Если нет, я бы предположил, что вы используете datastax driver for cassandra. Я использовал его, и это действительно легко. Если у вас возникнут проблемы с настройкой, я могу помочь.

+0

Thanx Reveka, но я получил запрос. Только проблема относится к столбцу timestamp. Любая помощь по этому поводу? – SnehaT

+0

Можете ли вы отправить мне строку метки времени, используемой в запросе? – Reveka

+0

Временная метка находится в формате: 2016-01-21 18: 30: 00.000000 + 0000 ....... Я не уверен, как JDBC имеет дело с колонкой timestamp cassandra. В тот момент, когда я добавляю имя столбца в запрос, он дает ошибку. :( – SnehaT

0

Я использую JPA с Кассандрой и поэтому JDBC

<persistence-unit name="Cassandra" transaction-type="RESOURCE_LOCAL"> 
     <properties> 
      <property name="javax.persistence.jdbc.driver" value="com.github.cassandra.jdbc.CassandraDriver" /> 
     </properties> 
</persistence-unit> 

Вы можете использовать JDBC с Кассандрой, хотя есть не решение от JDBC datastax

Maven зависимость

com.github .zhicwu enter code here cassandra-jdbc-driver 0.6.1

приветствует

0

В соответствии с документацией Cassandra вы должны использовать API-интерфейс Datastax Java. Cassandra это не база данных SQL, а NOSQL, следовательно, существует совершенно другая система.

Если у вас есть проект Maven добавить эти зависимости от файла конфигурации pom.xml:

<dependency> 
     <groupId>com.datastax.cassandra</groupId> 
     <artifactId>cassandra-driver-core</artifactId> 
     <version>3.1.0</version> 
    </dependency> 
    <dependency> 
     <groupId>com.datastax.cassandra</groupId> 
     <artifactId>cassandra-driver-mapping</artifactId> 
     <version>3.1.0</version> 
    </dependency> 
    <dependency> 
     <groupId>com.datastax.cassandra</groupId> 
     <artifactId>cassandra-driver-extras</artifactId> 
     <version>3.1.0</version> 
    </dependency> 

Здесь репозиториев Maven URL: https://mvnrepository.com/artifact/com.datastax.cassandra/cassandra-driver-core

После, создать свой первый Hello Cassandra магистраль, как ниже:

package cassandraMain;  
import com.datastax.driver.core.Cluster; 
    import com.datastax.driver.core.Session; 

    public class Main { 

     public static void main(String[] args) { 
      // Only a short example 
      // You must to take care about the several exception and the usage of the cluster and session objects... 

      Cluster cluster; 
      Session session; 

      // Connect to the local cluster with the keyspace demodb 
      cluster = Cluster.builder().addContactPoint("127.0.0.1").build(); 
      session = cluster.connect("demodb"); 

      // Insert one record - only for test... 
      session.execute("INSERT INTO test (username, name, surname)" 
        + " VALUES ('test_"+System.currentTimeMillis()+"', 'Andrea', 'Giassi')");   

      session.close(); 
      cluster.close();   
     } 

    } 

Я надеюсь, что это может вам помочь. King Regards

Смежные вопросы