Как я могу получить строку из большого двоичного объекта (идентификатор), хранящегося в fusionauth DB?

#java #fusionauth

#java #fusionauth

Вопрос:

В аналитических целях я хочу выполнить запрос к базе данных Fusionauth. Но поля идентификатора хранятся в виде двоичных двоичных объектов. У вас есть функция (java или sql) Я могу использовать для преобразования этого большого двоичного объекта в строку?

Комментарии:

1. После преобразования большого двоичного объекта в массив байтов вы можете просто вызвать new String(byteArray) для создания строки.

Ответ №1:

Я предполагаю, что вы используете MySQL. FusionAuth использует UUID для уникальных идентификаторов, и в MySQL мы храним их как BINARY(16) .

Если вы хотите выбрать это значение в удобочитаемой форме, вы можете выполнить выбор, например SELECT HEX(id) FROM table_name .

Если вы хотите выбрать этот столбец и десериализовать его в тип Java UUID, вы можете использовать код, аналогичный следующему:

 public UUID fromByteArray(byte[] ba) {
  long msb = 0;
  long lsb = 0;
  for (int i = 0; i < 8; i  ) {
    msb = (msb << 8) | (ba[i] amp; 0xff);
  }
  for (int i = 8; i < 16; i  ) {
    lsb = (lsb << 8) | (ba[i] amp; 0xff);
  }
  return new UUID(msb, lsb);
}