gpt4 book ai didi

jdbc - 我应该如何将 UUID 与 JavaDB/Derby 和 JDBC 一起使用?

转载 作者:行者123 更新时间:2023-12-03 18:31:25 25 4
gpt4 key购买 nike

我目前使用 INT作为 JavaDB (Apache Derby) 中主键的类型,但由于我正在实现分布式系统,我想将类型更改为 java.util.UUID .关于这个的几个问题:

  • 我应该为 UUID 使用 JavaDB/Derby 中的哪种数据类型?我见过CHAR(16) FOR BIT DATA被提到过,但我对此知之甚少。是 VARCHAR(16)替代?
  • 我应该如何将它与 JDBC 一起使用?例如。在 PreparedStatement ,我应该如何设置和获取 UUID?
  • 如果我以后想将数据库更改为 SQL Server,是否有与 java.util.UUID 兼容的数据类型?

  • 简单地说,我应该如何将 UUID 与 JavaDB/Derby 和 JDBC 一起使用?

    最佳答案

    UUID 是一个 128 位的值。 CHAR(16) FOR BIT DATA type 反射(reflect)的是为了简洁起见,它是以字符形式存储的位数据。我不认为 VARCHAR(16)会起作用,因为它没有位标志。数据库必须能够将二进制数据转换为字符数据,这需要处理编码并且存在风险。更重要的是,它不会给你买任何东西。由于 UUID 始终是 128 位,因此使用 VARCHAR 不会节省空间。在 CHAR .所以你不妨使用预期的 CHAR(16) FOR BIT DATA .

    对于 JDBC,我认为您使用 get/setBytes() 方法,因为它处理少量二进制数据。 (不积极,必须尝试这个)

    并且不知道 SQL Server 部分。

    关于jdbc - 我应该如何将 UUID 与 JavaDB/Derby 和 JDBC 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3954653/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com