use*_*879 5 eclipse connection jdbc cassandra
所以我在我的项目中使用Cassandra,我必须在Eclipse和数据库之间建立连接.我尝试使用我在code.google.com上找到的兼容JDBC的驱动程序但是我遇到了这个异常:
线程"main"中的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-1
这是我的代码:
package cassandrasampledriver;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.cassandra.cql.jdbc.DriverResolverException;
import org.apache.cassandra.cql.jdbc.InvalidUrlException;
public class CassandraDriver
{
public static void main(String[] args) {
Connection con = null;
String KS = "cassandrademocql";
try
{
Class.forName("org.apache.cassandra.cql.jdbc.CassandraDriver");
con = DriverManager.getConnection("jdbc:cassandra://localhost:9160/" + KS);
Statement stmt = con.createStatement();
String query = "DROP KEYSPACE cassandrademocql;";
ResultSet result = stmt.executeQuery(query);
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
catch (SQLException e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
提前致谢 :)
我使用此 cql 驱动程序(版本 1.1.2 与 JDK6 上的 cassandra 1.2 兼容)运行了您的代码,没有错误。也许您在类路径中缺少引用?代码的唯一问题是您将变量分配给方法调用不会返回任何东西ResultSet result = stmt.executeQuery(query);,所以java.sql.SQLNonTransientException会抛出异常。
你说你是 Cassandra 的新手,只是一些友好的建议,我会对Cassandra 的可用 API进行一些研究在做出选择之前
这些是我使用的 JAR
我运行的完整代码:
package cassandrasampledriver;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class CassandraDriver {
public static void main(String[] args) {
Connection con = null;
String KS = "cassandrademocql";
try
{
Class.forName("org.apache.cassandra.cql.jdbc.CassandraDriver");
con = DriverManager.getConnection("jdbc:cassandra://localhost:9160/" + KS);
Statement stmt = con.createStatement();
String query = "DROP KEYSPACE cassandrademocql;";
// Because you are droping the KS this will not return anything
// So the result set will be null and a java.sql.SQLNonTransientException exception will be thrown every time.
ResultSet result = stmt.executeQuery(query);
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1516 次 |
| 最近记录: |