Они, вероятно, реализовали 16 уникальных байтов с помощью UUID. К сожалению, в ResultSet нет подходящего типа SQL. UUID java класса является подходящим держателем данных:
public static UUID toUUID(byte[] bytes) {
ByteBuffer idBuffer = ByteBuffer.wrap(bytes);
return new UUID(idBuffer.getLong(), idBuffer.getLong());
}
UUID uuid = toUUID(rs.getBytes(1));
public static byte[] fromUUID(UUID uuid) {
byte[] bytes = new byte[16];
ByteBuffer idBuffer = ByteBuffer.wrap(bytes);
idBuffer.putLong(uuid.getMostSignificantBits());
idBuffer.putLong(uuid.getLeastSignificantBits());
return bytes;
}
rs.setBytes(1, fromUUID(uuid));
Причины не при использовании byte[]
: это слишком низкий уровень, ничего не говоря и в необходимость некоторых операций.
UUID, с другой стороны, имеет значение уникального идентификатора. Он также имеет equals
, compareTo
, hashCode
и даже несколько читабельный toString
.