JDBC 4.0 - MS SQL 2005 - как вставить изображение из приложения Java? - PullRequest
1 голос
/ 21 июня 2011

Я только что скачал драйвер microsoft jdbc mssql, чтобы попытаться подключить мое тестовое приложение ... Библиотека содержит так много методов, что я запутался ... Существует BLOB и InputStream, но я не уверен, какойнужно вставить FileInputStream например?Я не смог найти учебник, показывающий, что, кроме того, я хочу вставить изображение с помощью процедуры t-sql ... Итак, мой вопрос ... Как вставить FileInputStream в таблицу MS SQL Server 2005 с помощью клиентского приложения Java как ...

A) Без процедуры B) С процедурой t-sql

Любое полезное руководство будет высоко ценится

1 Ответ

4 голосов
/ 21 июня 2011

В документации MSDN приведен пример для драйвера JDBC, и аналогичный пример здесь (найден Googling для "mssql jdbc insert image"). Оба этих примера, похоже, полагаются на использование setBinaryStream () для PreparedStatement для передачи FileInputStream в поле поля типа BLOB.

Третий пример ниже для справки:

PreparedStatement pstmt = con.prepareStatement("INSERT INTO BigTable (Col1) VALUES(?)");
FileInputStream inStream = new FileInputStream(new File("myImg.gif"));
pstmt.setBinaryStream(1, inStream);
pstmt.executeUpdate();
inStream.close();

В ответ на вопрос B я предполагаю, что можно создать хранимую процедуру с параметром BLOB, а затем передать входной поток, используя CallableStatement # setBinaryStream , очень похожий на описанный выше, например,

CallableStatement cstmt = con.prepareCall("{AddImage(?)}");
FileInputStream inStream = new FileInputStream(new File("myImg.gif"));
cstmt.setBinaryStream(1, inStream);
cstmt.executeQuery();
inStream.close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...