#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);
}