Как вставить изображение в столбец BLOB с помощью инструкции insert в postgres? [Дубликат]

Можно использовать аннотацию Apache @Model для создания классов модели Java, представляющих структуру файлов JSON, и использовать их для доступа к различным элементам дерева JSON. В отличие от других решений эта работает полностью без отражения и поэтому подходит для сред, где отражение невозможно или имеет значительные накладные расходы.

Существует образец проекта Maven , показывающий использование. Прежде всего он определяет структуру:

@Model(className="RepositoryInfo", properties = {
    @Property(name = "id", type = int.class),
    @Property(name = "name", type = String.class),
    @Property(name = "owner", type = Owner.class),
    @Property(name = "private", type = boolean.class),
})
final class RepositoryCntrl {
    @Model(className = "Owner", properties = {
        @Property(name = "login", type = String.class)
    })
    static final class OwnerCntrl {
    }
}

, а затем использует сгенерированные классы RepositoryInfo и Owner для анализа предоставленного входного потока и выбора определенной информации при этом:

List repositories = new ArrayList<>();
try (InputStream is = initializeStream(args)) {
    Models.parse(CONTEXT, RepositoryInfo.class, is, repositories);
}

System.err.println("there is " + repositories.size() + " repositories");
repositories.stream().filter((repo) -> repo != null).forEach((repo) -> {
    System.err.println("repository " + repo.getName() + 
        " is owned by " + repo.getOwner().getLogin()
    );
})

Вот и все! В дополнение к этому здесь live gist показывает аналогичный пример вместе с асинхронной сетевой связью.

4
задан marc_s 10 March 2014 в 07:29
поделиться

1 ответ

insert into category(category_name,category_image) values('tablette', bytea('D:\image.jpg'));

Вышеупомянутое решение работает, если тип столбца является bytea

insert into category(category_name,category_image) values('tablette', lo_import('D:\image.jpg'));

Вышеупомянутое решение работает, если тип столбца является oid, т. е. Blob

insert into category(category_name,category_image) values('tablette',decode('HexStringOfImage',hex));

Вышеупомянутый декодирование функция принимает два параметра. Первый параметр - HexString для изображения. Второй параметр - hex по умолчанию. Функция декодирования скрывает шестнадцатеричную строку в байтах и ​​сохраняет в столбце данных типа bytea в postgres.

1
ответ дан Ravi 26 August 2018 в 13:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: