-2
を使用してカサンドラを接続することができません。私は次の例外を受け取ります。こんにちは、私は、JDBCドライバを使用してカサンドラに接続しようとしていますJDBCドライバに
java.sql.SQLNonTransientConnectionException: Connection url must specify a host, e.g., jdbc:cassandra://localhost:9170/Keyspace1
at org.apache.cassandra.cql.jdbc.Utils.parseURL(Utils.java:190)
at org.apache.cassandra.cql.jdbc.CassandraDriver.connect(CassandraDriver.java:85)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.sub.cas.CqlJdbcTestBasic.main(CqlJdbcTestBasic.java:14)
私のcassandraサーバーは正常に動作しており、Windows 10 OSのcqlシェルからアクセスできます。
これは私が書かれているJavaクラスです。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class CqlJdbcTestBasic {
public static void main(String[] args) {
Connection con = null;
try {
Class.forName("org.apache.cassandra.cql.jdbc.CassandraDriver");
con = DriverManager.getConnection("jdbc:cassandra:/root/[email protected]:9160/hr");
String query = "SELECT empid, emp_first, emp_last FROM User WHERE empid = 1";
Statement stmt = con.createStatement();
ResultSet result = stmt.executeQuery(query);
while (result.next()) {
System.out.println(result.getString("empid"));
System.out.println(result.getString("emp_first"));
System.out.println(result.getString("emp_last"));
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (con != null) {
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
con = null;
}
}
}
}
私はこのurl :: https://code.google.com/archive/a/apache-extras.org/p/cassandra-jdbcから私の瓶を集めました。可能な解決策を見つけることができません。助けてください。ユーザー名の前に2つのスラッシュを持っている場合
'接続URLはホストを指定する必要があります(例:jdbc:cassandra:// localhost:9170/Keyspace1')。あなたが有効ではありません: 'JDBC:カサンドラ:/ルート/ルート@ localhostを:9160/hr' – OrangeDog
あなたがここにhttp://stackoverflow.com/a/41951737/5558072を学ぶことができます –