【问题标题】:cassandra c# datastax client insert blobcassandra c# datastax 客户端插入 blob
【发布时间】:2016-01-25 15:02:34
【问题描述】:

嗨,我想知道是否有更优雅的插入 blob 的方法,而不是将字节数组转换为字符串,例如:

string strblob = "0x00" + BitConverter.ToString(stream2.GetBuffer()).Replace("-", "");

ISession session = cluster.Connect("abc");

session.Execute(string.Format("insert into events(blob) values ({0})", blobStr));

【问题讨论】:

  • 据我所知,将二进制数据转换为十六进制字符串格式并添加前缀“0x”是使用 Datastax 将二进制数据加载到 Cassandra 的唯一方法。
  • 感谢 Jaco。似乎浪费了很多内存... /:
  • 还有取数据的时候需要把0x脱掉... //:
  • 类似的问题也可能对您有所帮助:stackoverflow.com/questions/32072373/…

标签: cassandra cassandra-2.0 datastax datastax-enterprise cassandra-cli


【解决方案1】:

还有一个更优雅更有效的解决方案就是使用绑定语句。

byte[] blob = stream2.GetBuffer();
ISession session = cluster.Connect("abc");

PreparedStatement preparedStatement = session.Prepare("INSERT INTO events(blob) VALUES (?)");
BoundStatement boundStatement = preparedStatement.Bind(blob);

session.Execute(boundStatement);

PreparedStatement 背后的想法是对字符串查询进行一次解析,然后根据需要使用不同的值重复使用它。因此,请跟踪您准备好的陈述。

【讨论】:

    猜你喜欢
    • 2014-07-30
    • 1970-01-01
    • 2013-03-29
    • 2015-12-24
    • 2015-01-04
    • 2015-01-25
    • 2018-11-25
    • 2020-08-02
    • 1970-01-01
    相关资源
    最近更新 更多