Встречается на собеседованиях • сегодня
Можно ли сохранить PDF в PostgreSQL
Да, можно сохранять PDF в PostgreSQL, используя тип данных bytea (двоичные данные) или BLOB (Large Object).
Пример с bytea:
java
// Чтение PDF в массив байтов
byte[] pdfBytes = Files.readAllBytes(Paths.get("example.pdf"));
// Сохранение в PostgreSQL
String sql = "INSERT INTO documents (name, content) VALUES (?, ?)";
try (PreparedStatement stmt = connection.prepareStatement(sql)) {
stmt.setString(1, "example.pdf");
stmt.setBytes(2, pdfBytes);
stmt.executeUpdate();
}Для больших файлов лучше использовать Large Object (BLOB):
java
// Открытие Large Object
long oid = connection.unwrap(PGConnection.class).getLargeObjectAPI().createLO();
try (LargeObjectManager lom = connection.unwrap(PGConnection.class).getLargeObjectAPI();
LargeObject lob = lom.open(oid, LargeObjectManager.WRITE);
InputStream is = new FileInputStream("example.pdf")) {
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = is.read(buffer)) != -1) {
lob.write(buffer, 0, bytesRead);
}
}Плюсы bytea: проще в использовании, подходит для небольших файлов.
Плюсы BLOB: эффективнее для больших файлов (>1MB), позволяет потоковую передачу.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы