【问题标题】:Cassandra convert UUID to string and backCassandra 将 UUID 转换为字符串并返回
【发布时间】:2018-08-05 18:37:19
【问题描述】:

如果我使用 UUID1 作为列名,然后用 php 检索它们,我如何将该 UUID 转换为可读字符串,以便我可以将该字符串插入 HTML,然后稍后使用它通过转换该字符串来选择同一列回到UUID?这可能吗?

我可以使用 UTF8 或其他方式,但我想避免冲突并获得有序的宽行,我确实需要将这些列名存储到 HTML,我看不到任何其他方式。

我正在使用phpcassa

【问题讨论】:

    标签: cassandra phpcassa


    【解决方案1】:

    您可以将 UUID 对象转换为字符串以获得漂亮的可打印版本。相同的字符串可以与 UUID::import() 一起使用以再次创建相同的 UUID 对象:

    use phpcassa\UUID;
    
    $uuid = UUID::uuid1();
    $pretty_uuid = (string)$uuid;
    echo("Printable version: " . $pretty_uuid . "\n");
    $uuid_copy = UUID::import($pretty_uuid);
    assert ($uuid == $uuid_copy);
    

    【讨论】:

      【解决方案2】:

      假设您将 UUID 作为 byte[] 获取,您可以使用如下内容:

          public Object convertFromNoSqlImpl(byte[] value) {
              byte[] timeArray = new byte[8];
              byte[] clockSeqAndNodeArray=new byte[8];
              System.arraycopy(value,0,timeArray,0,8);
              System.arraycopy(value,8,clockSeqAndNodeArray,0,8);
              long time = StandardConverters.convertFromBytes(Long.class, timeArray);
              long clockSeqAndNode = StandardConverters.convertFromBytes(Long.class, clockSeqAndNodeArray);
              UUID ud = new UUID(time,clockSeqAndNode);
              return ud;
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-02
        • 1970-01-01
        • 1970-01-01
        • 2013-07-21
        • 1970-01-01
        • 1970-01-01
        • 2014-06-11
        • 2011-01-13
        相关资源
        最近更新 更多