Делаю вот так:
//Загружаем драйвер
Class.forName("org.postgresql.Driver");
System.out.println("Драйвер подключен");
//Создаём соединение
connection = DriverManager.getConnection(url, name, password);
System.out.println("Соединение установлено");
PreparedStatement preparedStatement = connection.prepareStatement(
"INSERT INTO photos(client_id, photo_data) values(?, ?)");
preparedStatement.setLong(1,clientID);
// preparedStatement.setBinaryStream(2,new ByteArrayInputStream(imageData),imageData.length);
preparedStatement.setBytes(2,imageData);
preparedStatement.executeUpdate();
Получаю вот такую ошибку:
org.postgresql.util.PSQLException: ОШИБКА: столбец "photo_data" имеет тип bytea[], а выражение - bytea Подсказка: Перепишите выражение или преобразуйте его тип. Позиция: 54
Что не так? imageData это byte[].
Поменяйте тип photo_data на bytea. Название типа ByteA означает byte array. У вас сейчас поле photo_data имеет тип массива байтовых массивов. А вставить в него вы пытаетесь просто последовательность байтов. Естественно, что СУБД ваших попыток не понимает.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости