繁体   English   中英

`InvalidQueryException:无法使用Datastax Java驱动程序将“ [B @ 50908fa9”解析为十六进制字节”

[英]`InvalidQueryException: cannot parse '[B@50908fa9' as hex bytes` using Datastax Java driver

我试图在我的Cassandra表中将字节数组插入Blob数据类型中。我正在使用Datastax Java驱动程序。 下面是我的代码-

for (Map.Entry<String, byte[]> entry : attributes.entrySet()) {
    System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());

    String cql = "insert into test_data (user_id, name, value) values ('"+userId+"', '"+entry.getKey()+"', '"+entry.getValue()+"');";

    System.out.println(cql);

    CassandraDatastaxConnection.getInstance();

    CassandraDatastaxConnection.getSession().execute(cql);

}

这是我回来的例外-

InvalidQueryException: cannot parse '[B@50908fa9' as hex bytes

我想问题是,我正在制作高于cql的方法。肯定缺少某些内容...

我已经创建了这样的表-

create table test_data (user_id text, name text, value blob, primary key (user_id, name));

有谁能够帮助我? 谢谢...

问题是,当您将字节数组附加到String时,它将在byte []上调用toString,该输出显示您看到的无用指针。 您需要将其手动转换为数据类型的字符串。 在您的情况下,您使用的是Blob,因此您需要转换为十六进制字符串。

这个问题有将byte []转换为String的代码:

如何在Java中将字节数组转换为十六进制字符串?

您可以使用这些功能之一,并在其前面加上“ 0x”。 然后,您应该为您的Blob使用有效的字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM