Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带有身份验证的Cassandra jdbc连接_Java_Jdbc_Cassandra_Cassandra Jdbc - Fatal编程技术网

Java 带有身份验证的Cassandra jdbc连接

Java 带有身份验证的Cassandra jdbc连接,java,jdbc,cassandra,cassandra-jdbc,Java,Jdbc,Cassandra,Cassandra Jdbc,我正在尝试使用cdata jdbc连接器连接到Cassandra。但是,我找不到如何在连接url中提供用户名和密码。这是我的java代码 package com.dremio.exec.store.jdbc.conf; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class TestConnection

我正在尝试使用cdata jdbc连接器连接到Cassandra。但是,我找不到如何在连接url中提供用户名和密码。这是我的java代码

package com.dremio.exec.store.jdbc.conf;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class TestConnection {

    public static void main(String[] args) throws Exception {

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

        String query = "SELECT * FROM emp";

        Statement stmt = con.createStatement();
        ResultSet result = stmt.executeQuery(query);

        while (result.next()) {
            System.out.println(result.getString("emp_id"));
            System.out.println(result.getString("emp_name"));
            System.out.println(result.getString("emp_city"));
        }
        con.close();
    }
}
目前,我提供的url没有身份验证。如何在那里提供用户名和密码。

列出和作为可用属性添加到JDBC连接字符串中。您可以将其与用户名和密码一起添加以进行身份验证:

con = DriverManager.getConnection(
        "jdbc:cassandra://localhost:9160;User=ayush;Password=yourpwd");
您还可以将它们添加为属性,如示例中所述:

Properties prop = new Properties();
prop.setProperty("Port","9042");
prop.setProperty("Server","127.0.0.1");
prop.setProperty("User","ayush");
prop.setProperty("Password","yourpwd");
 
Connection conn = DriverManager.getConnection("jdbc:cassandra:",prop);
此外,除非您使用的是旧的Cassandra集群或启用节俭功能的3.x集群,否则9160将无法工作。事实上,Thrift项目已经有几年没有pull请求了,所以我建议离开它,在9042上使用本机二进制协议